【Vue】整合 tinymce 富文本编辑器
👉 前言
富文本是一个比较常用的功能,但是又有很多的坑,在选择的时候也看了很多的文章,最终决定选择 tinymce。为什么选择这个呢,第一个就是 UI 我觉得很好看,第二个就是文档比较完善,还有对应的中文版本,各个 API 也较为友好,还有一个就是插件化,按需引入。常见的富文本以及分析也有大佬做过文章了,详细的可以看花裤衩大佬的这篇文章常见富文本。
📁 相关文档
🔨 安装 tinymce
注:vue2 中不能使用 @tinymce/tinymce-vue 为 4 以上的版本
npm install @tinymce/tinymce-vue@3.2.8 -S
npm install tinymce@5.10.3 -S
编译器默认是英文的,如果需要汉化,可以前往中文汉化包下载
在项目的 public 文件夹下新建一个 tinymce 文件夹,用来存放主题和语言包,以及后面可能需要自定义的插件。将 node_modules/tinymce/skins(主题)复制到 public/tinymce 中。另外在 tinymce 中新建一个 langs 目录,用来存放下载好的汉化包。
✅ 正式开始
这里为了方便其他地方引用,封装了一个组件。
为了让代码更加的优雅,以及方便管理配置和插件,这里将配置信息单独做一个 config.js 来管理。
注意: 如果需要引入表情插件,则要把 node_modules/tinymce/plugins/emoticons/js 下的 emojiimages.min.js 放置在 public 下,否则无法使用。
❔ 如何使用自定义的图片上传?
官方有提供一个上传的 url 配置,但是需要后台配合返回指定的数据格式。
这里我们还是希望可以自定义参数,这样才不对后台产生影响,实现 images_upload_handler 函数即可,如果没有实现的话,默认是使用 base64 格式的图片。
🔴 使用效果
以上就是整合 tinymce 的所有内容了,如果有疑问或者建议,欢迎在评论区讨论。
版权声明: 本文为 InfoQ 作者【TaurusCode】的原创文章。
原文链接:【http://xie.infoq.cn/article/4a41e0f930e4981c3c53f943b】。文章转载请联系作者。
评论