vue-cli3 使用 Tinymce富文本编辑器

安装Tinymce

npm i tinymce -S

安装中文插件

点击下载语言包

vue-cli3 使用 Tinymce富文本编辑器

解压后得到一个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>

效果图

 

vue-cli3 使用 Tinymce富文本编辑器

好了,完成。感觉还挺好看的 。

如果喜欢黑色的主题,只需要更改init配置  skin_url: 'tinymce/skins/ui/oxide-dark',