vue小技巧

常见富文本 VUE 富文本 tinymce-vue使用

2019-11-14  本文已影响0人  去年的牛肉

富文本是管理后台一个核心的功能,但同时又是一个有很多坑的地方。在选择富文本的过程中我也走了不少的弯路,市面上常见的富文本都基本用过了,最终权衡了一下选择了Tinymce

Tinymce

这里来简单讲一下在自己项目中使用 Tinymce 的方法。

已废弃
目前采用全局引用的方式。代码地址:static/tinymce (static 目录下的文件不会被打包), 在 index.html 中引入。并确保它的引入顺序在你的app.js之前!

v4.2.0+ 之后改用了异步加载 CDN 的引入方式。

如果想修改 cdn 地址或者 tinymce 的版本只需在 @/components/Tinymce 中找到 tinymce 的 cdn 地址进行修改就可以了。它会通过dynamicLoadScript自动注入的 index.html 中。

由于目前使用 npm 安装 Tinymce 方法比较复杂而且还有一些问题(日后可能会采用该模式)且会大大增加编译的时间所以暂时不准备采用。👾

使用: 由于富文本不适合双向数据流,所以只会 watch 传入富文本的内容一次变化,之后传入内容的变化就不会再监听了,如果之后还有改变富文本内容的需求。

可以通过 this.refs.xxx.setContent() 手动来设置。

源码也很简单,有任何别的需求都可以在 @/components/Tinymce 中自行修改。

<tinymce :height="300" v-model="content" id='tinymce'></tinymce>

目前提供了如下几个属性,有需求可自行添加,或者提 issue。

Property Description Type Default
id Component unique identifier String Default to help you generate a unique id
value Rich text content String Only monitor changes once
toolbar Rich text toolbar Array []
menubar Rich text menubar String 'file edit insert view format table'
height Rich text height Number 360
width Rich text width Number, String /

#tinymce-vue

tinymce 官方也在之前发布了 vue 版本的tinymce-vue,帮你封装好了很多东西,但同时也相对的减少了灵活性,有兴趣的可以自行研究一下。



下面来一段VUE用法代码

npm install @tinymce/tinymce-vue -s
<template>
  <div>
    <tinymce-editor api-key="API_KEY" v-model ="content" :init="{plugins: 'wordcount'}"></tinymce-editor>
    <el-buttom @click="submit">

    </el-buttom>
  </div>
</template>

<script>

  // es modules
  import tinymceVue from '@tinymce/tinymce-vue';
  // commonjs require
  // NOTE: default needed after require
  var Editor = require('@tinymce/tinymce-vue').default;


  export default {
    name: "porductManager",
    data(){
      return{
        content:''
      }
    },
    components: {
      'tinymce-editor': Editor // <- Important part
    },
    methods:{
      submit(){
        console.log('content', content)
      }
    }
  }
</script>

<style scoped>

</style>
上一篇 下一篇

猜你喜欢

热点阅读