@ckeditor/ckeditor5-vue
Version:
Official Vue.js 3+ component for CKEditor 5 – the best browser-based rich text editor.
115 lines (73 loc) • 4.72 kB
Markdown
Changelog
=========
## [8.2.0](https://github.com/ckeditor/ckeditor5-vue/compare/v8.2.0-alpha.0...v8.2.0) (July 13, 2026)
### Features
* Added experimental multi-root editor integration with the `CkeditorMultiRoot`, `CkeditorMultiRootToolbar`, and `CkeditorMultiRootEditable` components and the `useMultiRootEditor()` composable.
**This feature is experimental.** Its API is not stable and may change in any release without a major version bump.
## [8.2.0-alpha.0](https://github.com/ckeditor/ckeditor5-vue/compare/v8.1.1...v8.2.0-alpha.0) (June 22, 2026)
### Features
* Added multi-root editor integration with the `CkeditorMultiRoot`, `CkeditorMultiRootToolbar`, and `CkeditorMultiRootEditable` components and the `useMultiRootEditor()` composable.
## [8.1.1](https://github.com/ckeditor/ckeditor5-vue/compare/v8.1.0...v8.1.1) (June 9, 2026)
### Bug fixes
* Fixed a crash when using `InlineEditor` with the `CKEditor` component and CKEditor 5 `>= 48.0.0`. Closes [#422](https://github.com/ckeditor/ckeditor5-vue/issues/422).
## [8.1.0](https://github.com/ckeditor/ckeditor5-vue/compare/v8.0.0...v8.1.0) (June 8, 2026)
### Features
* Added support for the paragraph-like editor feature. It is now possible to customize the editable element's tag name, classes, styles, and attributes by passing `config.root.element` or `config.roots.main.element` through the integration.
The configuration value can be a plain string (tag name) or an object:
```html
<template>
<ckeditor :editor="BalloonEditor" :config="config" />
</template>
<script setup>
import { BalloonEditor } from 'ckeditor5';
const config = {
root: {
element: {
name: 'article',
classes: [ 'my-editor', 'custom-class' ],
styles: { color: 'red' },
attributes: { role: 'textbox' }
}
}
};
</script>
```
To configure the root as a paragraph-like (inline-content only) editor, also pass `modelElement: '$inlineRoot'`:
```js
const config = {
root: {
element: 'h1',
modelElement: '$inlineRoot',
initialData: 'Document title',
placeholder: 'Enter title...'
}
};
```
For editors that use the Vue-rendered element as their editable (such as Inline or Balloon editor), the editable falls back to the `tagName` prop (`div` by default) when no element definition is provided in the config. For the Classic editor, which creates its own editable internally, `config.root.element` (or `config.roots.main.element`) should always be provided explicitly.
The `tagName` property has been deprecated in favor of this new configuration.
### Other changes
* Readme simplification.
## [8.0.0](https://github.com/ckeditor/ckeditor5-vue/compare/v8.0.0-alpha.0...v8.0.0) (May 5, 2026)
### BREAKING CHANGES
* The `ready`, `error`, and `destroy` events can now be emitted multiple times during a component's lifetime when the watchdog is active.
By default, the editor is wrapped with a watchdog that automatically restarts it after a crash. As a result, these events may fire repeatedly — `error` after each crash, `destroy` for each crashed editor, and `ready` after each successful watchdog restart — rather than only once during the component's mount/unmount lifecycle.
Additionally, `destroy` is no longer emitted when the component unmounts before the editor finishes initializing (it now fires only when an actual editor instance is destroyed). If your handlers relied on `@destroy` to detect component unmount, use Vue's `onBeforeUnmount` lifecycle hook instead
### Features
* You can now listen to the new `@error` event to catch and handle any errors that occur during editor initialization or at runtime (including errors automatically detected and reported by the Watchdog).
* Full Watchdog support has been added to the `<ckeditor>` component:
* The editor is now automatically wrapped with CKEditor 5’s Watchdog (unless you explicitly pass `disableWatchdog: true`). This gives you automatic crash recovery, error detection, and editor restarts without breaking your Vue component.
* New `watchdogConfig` prop for the Watchdog integration. You can now pass a full configuration object to customize its behavior:
```vue
<ckeditor
:watchdog-config="{
crashNumberLimit: 5,
minimumTimeBetweenCrashes: 1000,
// any other Watchdog options...
}"
...
/>
```
### Bug fixes
* Significantly improved stability during rapid component destruction (e.g. fast route changes, v-if toggling, or Suspense scenarios).
---
To see all releases, visit the [release page](https://github.com/ckeditor/ckeditor5-vue/releases).