VUE3 引入富文本插件 CKEditor5

目录

1.插件选型:

2.引入流程:

1.下载

2.全局引入

3.页面使用

3.问题报错解决:

4.关于TinyMce:


1.插件选型:

vue3的可选择的富文本插件很多,这次的业务需求只是简单的文字加粗,换行等,不需要图片文件等的功能,所以我暂且需要的是简单的富文本编辑器,

查找一些资料,最后选择的CKEditor5,选它是因为它开源,可免费使用到商业用途。之前尝试了tinymce,但是公司不打算申请apikey,所以alert提示框的问题解决不了……具体见文末。


 这里有一篇关于富文本编辑器的介绍:

vue3可使用的7款富文本编辑器

2.引入流程:

官网地址:Vue.js 3+ component - CKEditor 5 Documentation

1.下载

npm install --save @ckeditor/ckeditor5-vue @ckeditor/ckeditor5-build-classic

下载后查看下载的版本号是否一致:

 package.json

 "@ckeditor/ckeditor5-build-classic": "^37.0.1",
 "@ckeditor/ckeditor5-vue": "^4.0.1",

2.全局引入

main.js

import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
import router from './router'

//其他引入
import CKEditor from '@ckeditor/ckeditor5-vue';
app.use(router).use(CKEditor).mount('#app')

官网也有其他引入方法,我这里选择了我熟悉的引入,可以参考官网提及的最直接的一种方式。

有时间我会尝试那种。 

3.页面使用

接下来就是页面使用,我需要在一个编辑弹窗里展示富文本编辑器。

官网给的例子是这样的:

<template>
    <div id="app">
        <ckeditor :editor="editor" v-model="editorData" :config="editorConfig"></ckeditor>
    </div>
</template>

<script>
    import ClassicEditor from '@ckeditor/ckeditor5-build-classic';

    export default {
        name: 'app',
        data() {
            return {
                editor: ClassicEditor,
                editorData: '<p>Content of the editor.</p>',
                editorConfig: {
                    // The configuration of the editor.
                }
            };
        }
    }
</script>

按照官网的例子,我用的vue3的语法糖,所以有些不一样,但是总体跟官网的示例一样。

 

 我的代码如下:

<template>
    <div id="app">
        <ckeditor v-model="app_message" :editor="editor" :config="editorConfig"></ckeditor>
    </div>

</tempalte>

<script setup>
import { ref, reactive, computed, onMounted } from 'vue'
import ClassicEditor from '@ckeditor/ckeditor5-build-classic'

const editor = ClassicEditor

const editorConfig = reactive({})
let app_message = ref('<p>eeee</p>3333333<br/>sssssss')

</script>

3.问题报错解决:

通常引入库都会报错之类的,但是这次我未遇到报错,很幸运!

这里有一篇用ts写法引入的文章,记录一下,以防不时之需:

vue3使用CKEditor5(typescript版)

只是,关于图片、视频、上传,表格等,还不能使用,因为需求是暂且不需要这几个功能,所以我需要先隐藏。

官网的配置页:Interface EditorConfig (core/editor/editorconfig~EditorConfig) - CKEditor 5 API docs

Editor toolbar - CKEditor 5 Documentation

以下是配置。


4.关于TinyMce:

地址在这:TinyMCE Vue.js integration technical reference | TinyMCE Documentation

 引入这个后实现的效果如下:

功能很强大,但是很多我并不需要。

而且 引入后一直有一个提示框,是因为么有申请apikey。查了解决办法解决不了。

这里发现两个解决这个问题的方案:

Element-UI中调用tinymce6实现本地化加载,并解决提示:This domain is not registered with TinyMCE Cloud,省去api-keyhttp://t.csdn.cn/7twK6还有一个是用于解决这个问题的工具:

minimce - npmRich text editor, offline TinyMCE Vue 2.6/2.7/3 wrapper.. Latest version: 0.8.3, last published: 3 months ago. Start using minimce in your project by running `npm i minimce`. There are no other projects in the npm registry using minimce.https://www.npmjs.com/package/minimce以上两个作为记录!

### 富文本编辑器插件概述 对于 Vue.js 的开发环境来说,存在多种富文本编辑器插件可供选择。这些插件提供了不同的功能集以及用户体验设计。 #### CKEditor 5 组件 CKEditor 5 提供了一个官方的 Vue.js 组件来集成其强大的所见即所得编辑能力[^1]。该组件允许开发者轻松地将丰富的文本编辑体验嵌入到应用程序中,并且支持通过配置项来自定义工具栏按钮等功能特性。 ```html <template> <div id="app"> <!-- 使用 ckeditor --> <ckeditor :editor="editor" v-model="editorData"></ckeditor> </div> </template> <script> import ClassicEditor from &#39;@ckeditor/ckeditor5-build-classic&#39;; export default { data() { return { editor: ClassicEditor, editorData: &#39;<p>Content of the editor.</p>&#39; }; } }; </script> ``` #### TinyMCE 编辑器 TinyMCE 是另一个流行的开源 WYSIWYG HTML 文本编辑器解决方案,在 Vue 中可以通过特定的方式引入并使用它[^2]: ```javascript // main.js 或入口文件里注册全局组件 import EditorTinymce from &#39;@/components/TinymceEditor/index.vue&#39;; Vue.component(&#39;editor-tinymce&#39;, EditorTinymce); ``` ```html <!-- 在模板内使用 --> <editor-tinymce v-model="item.content"></editor-tinymce> ``` #### Quill 编辑器及其扩展应用 Quill 同样是一个非常受欢迎的选择之一,尤其适合那些希望获得更灵活定制选项的应用场景[^3][^4]。下面展示了如何在一个基于 Vue CLI 构建的项目中设置 Quill 及解决可能遇到的一些兼容性问题的方法。 ```html <quill-editor ref="myQuillEditor" v-model="formData.content" class="myQuillEditor" :options="editorOption" @change="onEditorChange($event)"> </quill-editor> <input type="file" accept="video/*" @change="changeVideo" id="uploadVideoDown" style="display:none"/> ``` 为了确保 Quill 能够正常工作于 Webpack 打包流程下,还需要调整 `vue.config.js` 文件中的 Webpack 配置以提供必要的依赖注入: ```js const webpack = require(&#39;webpack&#39;); module.exports = { chainWebpack: config => { config.plugin(&#39;provide&#39;).use(webpack.ProvidePlugin, [{ &#39;window.Quill&#39;: &#39;quill&#39;, &#39;Quill&#39;: &#39;quill/dist/quill.js&#39; }]); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值