ck-editor5是一款非常优秀的富文本编辑器,我爱模板网就在开发中使用到了它。下面是按需生成build文件,引入到vue3的方法:
1、先进入自定义配置界面,选择自己需要的插件,地址在:https://ckeditor.com/ckeditor-5/online-builder/
2、选择自己喜欢的风格,这里我爱模板网选择的是第一个:Classic
3、选择插件,点击add,加入插件,点击remove,移除插件:
这里注意:如果插件上显示“☆PREMIUM”,表示这个插件收费。
4、点击左上角的“next step”,进入调整工具栏界面,点击上面的工具栏的工具,会将此工具加入进去,点击下面的工具,会将此工具移除。还可以拖拽调整顺序。当然,后面下载后,仍然可以在代码中调整工具栏:
5、点击下一步,进入选择语言界面:
6、在点击下一步,就进入编译界面:
点击“start”开始编译,编译完下载即可。如果出现下面的界面,则表示在选择插件的时候,加入了收费插件:
7、下载后的文件如下,其中,build为编译后的文件,最终引入的也是这里面的内容:
8、如果需要重新调整工具栏的位置 - 只需要改变ckeditor.js代码的顺序然后执行npm命令
npm install npm run build
就能重新生成一个新的build文件
9、将build文件放到自己的项目中,这里在main.js中引入的,当然你也可以在vue页面中引入:
10、如果添加了上传图片的功能则需要写一个上传文件的类,创建一个 UploadAdapter.js 文件,代码如下:
/** * 配合ckeditor编辑器的上传类 * */ export default class UploadAdapter { // 加载器 #loader; // 上传的地址 #uploadFileUrl = ""; /** 构造方法 */ constructor(loader) { this.loader = loader; } /** 上传方法 */ upload() { this.loader.file.then(res => { console.log(res) }); } /** 中止上传过程方法 */ abort() {} }
11、vue文件中使用:
<template> <div> <div id="ck-editor"></div> <button @click="handleClick">获取内容</button> </div> </template> <script> import { defineComponent, reactive, toRefs, onMounted, toRaw } from 'vue'; import UploadAdapter from './UploadAdapter.js'; export default defineComponent({ setup() { const state = reactive({}); let editor: any = null; onMounted(() => { // 注意:这里的window.Editor,这个Editor名称要和你在下载下来的文件中,src/ckeditor.js导出的名称一致 (window as any).Editor.create(document.getElementById("ck-editor")).then((_editor: any ) => { _editor.plugins.get('FileRepository').createUploadAdapter = (loader: any) => { return new UploadAdapter(loader); }; editor = _editor; }) }) const handleClick = () => { console.log(editor.data.get()) } return { ...toRefs(state), handleClick, } } }); </script>
12、最终效果如下: