vue-cli3 使用 Tinymce富文本编辑器
安装Tinymce
npm i tinymce -S
安装中文插件
点击下载语言包
解压后得到一个zh_CN.js文件,将这个文件放到你的vue项目文件夹中
初始化
在这里,我是先封装成组件再调用
template:
<template> <div>
<textarea :id="id"></textarea>
<button class="btn" @click="release">发布文章</button>
</div>
</template>
script:
引入文件
import tinymce from 'tinymce/tinymce'//这下面是tinymce的插件
import 'tinymce/themes/silver/theme'
import 'tinymce/plugins/image'
import 'tinymce/plugins/link'
import 'tinymce/plugins/code'
import 'tinymce/plugins/table'
import 'tinymce/plugins/lists'
import 'tinymce/plugins/contextmenu'
import 'tinymce/plugins/wordcount'
import 'tinymce/plugins/colorpicker'
import 'tinymce/plugins/textcolor'
//这里写你自己存放语言包的路径
import '../../public/tinymce/langs/zh_CN.js'
配置
export default { name:'',
props:{
id:String
},
data () {
return {
init:{
selector: '#'+this.id,
language: 'zh_CN',
skin_url: 'tinymce/skins/ui/oxide',
height: 500,
//插件
plugins: 'link lists image code table colorpicker textcolor wordcount contextmenu',
//工具栏
toolbar:
'bold italic underline strikethrough | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | undo redo | link unlink image code | removeformat',
//隐藏tinymce的标识
branding: false,
}
};
},
methods:{
release(){
//content 是文本内容
let content = tinymce.get(this.id).getContent()
this.$emit('release',content)
}
},
mounted () {
//配置的初始化
tinymce.init(this.init)
},
beforeDestroy() {
//销毁
tinymce.get(this.id).destroy();
},
}
这里注意一定要销毁,否则第一次加载时是没效果的,需要刷新。
使用
引入刚刚写好的组件
import TinymceText from '../components/TinymceText'export default {
name:'',
data () {
return {
};
},
methods:{
release(content){
console.log(content);
}
},
components:{
'tinymce-text':TinymceText
}
}
记得加上id
<tinymce-text id="tinymce" @release="release"></tinymce-text>
效果图
好了,完成。感觉还挺好看的 。
如果喜欢黑色的主题,只需要更改init配置 skin_url: 'tinymce/skins/ui/oxide-dark',
以上是 vue-cli3 使用 Tinymce富文本编辑器 的全部内容, 来源链接: utcz.com/z/375435.html