TinyMCE Vue.js integration technical reference
Covered in this section:
Installing the TinyMCE Vue.js integration using NPM
To install the tinymce-vue package.
- 
For Vue.js 3.x users: npm install "@tinymce/tinymce-vue"
- 
For Vue.js 2.x users: npm install "@tinymce/tinymce-vue@^3"
Using the TinyMCE Vue.js integration
- 
Load the component. - 
For bundle loader users (such as webpack,rollup, orbrowserify):// es modules import Editor from '@tinymce/tinymce-vue'; // commonjs require // NOTE: default needed after require var Editor = require('@tinymce/tinymce-vue').default;
- 
To load tinymce-vuein an HTML file:<script src="/path/to/tinymce-vue.min.js"></script>
 
- 
- 
Add the editor to the componentsproperty of the app:// This might look different depending on how you have set up your app // but the important part is the components property var app = new Vue({ el: '#app', data: { /* Your data */ }, components: { 'editor': Editor // <- Important part }, methods: { /* Your methods */} })
- 
Add the <editor>tag to thetemplate<editor id="uuid" api-key="no-api-key" :init="{ plugins: 'advlist anchor autolink charmap code fullscreen help image insertdatetime link lists media preview searchreplace table visualblocks wordcount', toolbar: 'undo redo | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image', height: 500, }" />
Configuring the editor
The editor accepts the following properties:
<editor
  api-key="no-api-key"
  cloud-channel="8"
  :disabled=false
  :readonly=false
  id="uuid"
  :init= "{ }"
  initial-value=""
  :inline=true
  model-events= ""
  plugins=""
  tag-name="div"
  toolbar=""
  value=""
/>| None of the configuration properties are required for tinymce-vueto work. Specify a Tiny Cloud API key usingapi-keyto remove the "A valid API key is required to continue using TinyMCE. Please alert the admin to check the current API key. Click here to learn more." warning message. | 
api-key
Tiny Cloud API key. Required for deployments using the Tiny Cloud to provide the TinyMCE editor.
To register for a Tiny Cloud API key, visit the Tiny Account sign-up page. To retrieve the Tiny Cloud API key for an existing Tiny Account, login and visit the Tiny Account Dashboard.
Type: String
Default value: 'no-api-key'
licenseKey
Specifies the TinyMCE license key. Required for self-hosted deployments of TinyMCE. This property is not required for cloud-only deployments using the Tiny Cloud as your cloud subscription automatically includes the commercial license. For more information, see: License Key.
Type: String
Default value: undefined
Possible values:
* undefined - Use this when loading from Tiny Cloud with an API key
* 'gpl' - For open source projects using GPL license
* 'T8LK:…' - For commercial TinyMCE installations (must use this prefix for version 8+)
* 'GPL+T8LK:' - For open source projects that require premium features while maintaining GPL compliance.
| In hybrid deployments (using both cloud and self-hosted features): 
 | 
cloud-channel
Type: String
Default value: '8'
Possible values: '8', '8-testing', '8-dev', '8.1'
Changes the TinyMCE build used for the editor to one of the following Tiny Cloud channels:
- 
8(Default): The current enterprise release of TinyMCE.
- 
8-testing: The current release candidate for the next enterprise release of TinyMCE.
- 
8-dev: The nightly-build version of TinyMCE.
- 
A version number such as 8.1: The specific enterprise release version of TinyMCE.
Such as:
<editor
  api-key="no-api-key"
  cloud-channel="8-dev"
  :init="{ /* your other settings */ }"
/>For information TinyMCE development channels, see: Specifying the TinyMCE editor version deployed from Cloud - dev, testing, and stable releases.
disabled
The disabled property can dynamically switch the editor between a "disabled" (read-only) mode (true) and the standard editable mode (false).
Type: Boolean
Default value: false
Possible values: true, false
readonly
The readonly property can dynamically switch the editor between a "read-only" mode (true) and the standard editable mode (false).
Type: Boolean
Default value: false
Possible values: true, false
id
An id for the editor. Used for retrieving the editor instance using the tinymce.get('ID') method.
Type: String
Default value: Automatically generated UUID
init
Object sent to the tinymce.init method used to initialize the editor.
For information on the TinyMCE selector (tinymce.init), see: Basic setup.
Type: Object
Default value: '{ }'
initial-value
Initial content of the editor when the editor is initialized.
Type: String
Default value: ' '
inline
Used to set the editor to inline mode. Using <editor :inline=true /> is the same as setting {inline: true} in the TinyMCE selector (tinymce.init).
For information on inline mode, see: User interface options - inline and Setup inline editing mode.
Type: Boolean
Default value: false
Possible values: true, false
model-events
Sets the trigger events for v-model events.
For a list of available TinyMCE events, see: Available Events - Editor events.
Type: String
Default value: 'change keyup undo redo'.
output-format
Used to specify the format of the content emitted via the input event. This affects the format of the content used in conjunction with data binding.
Type: String
Default value: 'html'
Possible values: 'html', 'text'
plugins
Used to include plugins for the editor. Using <editor plugins="lists code" /> is the same as setting {plugins: 'lists code'} in the TinyMCE selector (tinymce.init).
For information on adding plugins to TinyMCE, see: Add plugins to TinyMCE.
Type: String or Array
tag-name
Only valid when <editor :inline=true />. Used to define the HTML element for the editor in inline mode.
Type: String
Default value: 'div'
toolbar
Used to set the toolbar for the editor. Using <editor toolbar="bold italic" /> is the same as setting {toolbar: 'bold italic'} in the TinyMCE selector (tinymce.init).
For information setting the toolbar for TinyMCE, see: User interface options - toolbar.
Type: String
Possible values: See Toolbar Buttons Available for TinyMCE.
Form Input Bindings: v-model
The v-model directive can be used to create a two-way data binding. For example:
<editor v-model="content" />For information on v-model and form input bindings, see: Vue.js documentation - Form Input Bindings.
Event binding
Functions can be bound to editor events, such as:
<editor @selectionChange="handlerFunction" />For older versions of Vue (Vue 2) supported by v3.x, the syntax for event bindings are: <editor v-on:selectionChange="handlerFunction"> or <editor @onSelectionChange="handlerFunction">.
When the handler is called (handlerFunction in this example), it is called with two arguments:
- 
event- The TinyMCE event object.
- 
editor- A reference to the editor.
The following events are available:
- 
activate
- 
addUndo
- 
beforeAddUndo
- 
beforeExecCommand
- 
beforeGetContent
- 
beforeRenderUI
- 
beforeSetContent
- 
beforePaste
- 
blur
- 
change
- 
clearUndos
- 
click
- 
contextMenu
- 
commentChange
- 
compositionEnd
- 
compositionStart
- 
compositionUpdate
- 
copy
- 
cut
- 
dblclick
- 
deactivate
- 
dirty
- 
drag
- 
dragDrop
- 
dragEnd
- 
dragGesture
- 
dragOver
- 
drop
- 
execCommand
- 
focus
- 
focusIn
- 
focusOut
- 
getContent
- 
hide
- 
init
- 
input
- 
keyDown
- 
keyPress
- 
keyUp
- 
loadContent
- 
mouseDown
- 
mouseEnter
- 
mouseLeave
- 
mouseMove
- 
mouseOut
- 
mouseOver
- 
mouseUp
- 
nodeChange
- 
objectResizeStart
- 
objectResized
- 
objectSelected
- 
paste
- 
postProcess
- 
postRender
- 
preProcess
- 
progressState
- 
redo
- 
remove
- 
reset
- 
saveContent
- 
selectionChange
- 
setAttrib
- 
setContent
- 
show
- 
submit
- 
undo
- 
visualAid