关于做一个有关富文本编辑器的工作
使用情况:在vue脚手架中使用
一、资源下载
npm install @tinymce/tinymce-vue -S
安装之后在node_modlules中找到tinymce/skins目录,然后将skins目录拷贝到static目录下。
如果是使用vue-cli 3.x构建的typescript项目,就放到public目录下。
二、在组件中初始化tinymce
//子组件 <template> <div class='tinymce' v-drag> <editor id='tinymce' v-model='value' :init='init'></editor> </div> </template> <script> //核心的两个模块 import tinymce from 'tinymce/tinymce' import Editor from '@tinymce/tinymce-vue' //一些样式模块 import 'tinymce/themes/silver/theme' import 'tinymce/icons/default/icons' import 'tinymce/plugins/link' import 'tinymce/plugins/lists' import 'tinymce/plugins/image' import 'tinymce/plugins/code' import 'tinymce/plugins/table' import 'tinymce/plugins/wordcount' import 'tinymce/plugins/preview' import 'tinymce/plugins/media' import 'tinymce/plugins/charmap' import 'tinymce/plugins/print' import 'tinymce/plugins/anchor' import 'tinymce/plugins/searchreplace' import 'tinymce/plugins/visualblocks' import 'tinymce/plugins/fullscreen' import 'tinymce/plugins/insertdatetime' import 'tinymce/plugins/paste' import 'tinymce/plugins/help' //如果在init配置中添加相对路径不生效可以直接在组件中引入 import '../../static/tinymce/skins/ui/oxide/skin.min.css' import '../../static/tinymce/skins/ui/oxide/content.inline.min.css' //在网上找个中文的模块 import '../../static/tinymce/zh_CN.js' export default { name: 'tinymce', props: [ 'editorData'//从父组件传递过来的数据 ], components: { Editor }, data () { return { init: {//配置富文本编辑器 height: 500,//高度 plugins: 'link',//添加插件 toolbar: ' bold italic | fontsizeselect | forecolor | link unlink | removeformat',//添加工具栏按钮 menubar: 'file edit',//添加菜单栏 // language_url: '../../static/tinymce/zh_CN.js',//如果不生效直接导入 language: 'zh_CN',//定义语言 content_css: false, // skin_url: '../../static/tinymce/skins/ui/oxide'//如果不生效直接导入 }, value:this.editorData,//父组件通过ref拿到该组件的值 } },
//在vue中初始化init created(){ tinymce.init({}); },
父组件
<tinymce-editor v-if="announcement" :editorData="editorData" ></tinymce-editor>
更多配置请看官网http://tinymce.ax-z.cn/