Vue+Webpack如何整合富文本編輯器TinyMce

這篇文章主要為大家展示了“Vue+Webpack如何整合富文本編輯器TinyMce”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Vue+Webpack如何整合富文本編輯器TinyMce”這篇文章吧。

創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站設計制作、成都網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元泗洪做網(wǎng)站,已為上家服務,為泗洪各地企業(yè)和個人服務,聯(lián)系電話:18982081108

選擇一個合適的富文本編輯器對于一個前端項目至關重要,這次我基于Vue來開發(fā)我項目中的前端部分,經(jīng)過權衡選擇了tinymce。其在UI,功能都很適合,tinymce官方文檔:點擊打開鏈接;

引入tinymce 我選用的版本4.7.4

npm install tinymce -S

將tinymce創(chuàng)建為Vue的組件,便于日后復用,創(chuàng)建組件editor.vue

<template>
    <textarea :id="id" :value="value"></textarea>
</template>
<script>
  // Import TinyMCE
  import tinymce from 'tinymce/tinymce';
  import 'tinymce/themes/modern/theme';
  import 'tinymce/plugins/paste';
  import 'tinymce/plugins/link';
  const INIT = 0;
  const CHANGED = 2;
  var EDITOR = null;
  export default {
    props: {
      value: {
        type: String,
        required: true
      },
      setting: {}
    },
    watch: {
      value: function (val) {
        console.log('init ' + val)
        if (this.status == INIT || tinymce.activeEditor.getContent() != val){
          tinymce.activeEditor.setContent(val);
        }
        this.status = CHANGED
      }
    },
    data: function () {
      return {
        status: INIT,
        id: 'editor-'+new Date().getMilliseconds(),
      }
    },
    methods: {
    },
    mounted: function () {
      const _this = this;
      const setting =
        {
          selector:'#'+_this.id,
          language:"zh_CN",
          init_instance_callback:function(editor) {
            EDITOR = editor;
            console.log("Editor: " + editor.id + " is now initialized.");
            editor.on('input change undo redo', () => {
              var content = editor.getContent()
              _this.$emit('input', content);
            });
          },
          plugins:[]
        };
      Object.assign(setting,_this.setting)
      tinymce.init(setting);
    },
    beforeDestroy: function () {
      tinymce.get(this.id).destroy();
    }
  }
  
</script>

在鉤子mounted 進行了tinymce的初始化工作,調(diào)用 tinymce.init(setting),setting為配置信息這樣我們便初步配置完成了editor組件

在其他頁面使用組件

<template>
  <div class="app-container">
    <div>
      <!-- 組件有兩個屬性 value 傳入內(nèi)容雙向綁定 setting傳入配置信息 -->
      <editor class="editor" :value="content" :setting="editorSetting" @input="(content)=> content = content"></editor>
    </div>
 
  </div>
</template>
<script>
  import editor from '@/components/editor'
  export default {
    name: "editor-demo",
    data: function () {
      return {
        content:'我是富文本編輯器的內(nèi)容',
        //tinymce的配置信息 參考官方文檔 https://www.tinymce.com/docs/configure/integration-and-setup/
        editorSetting:{
          height:400,
        }
      }
    },
    components:{
      'editor':editor
    }
  }
</script>
<style scoped>
</style>

此刻我們已經(jīng)完成了百分之90的配置 ,最后只需將node_modules/_tinymce@4.7.4@tinymce/文件夾下的skins文件夾放置于項目根目錄下,這樣tinymce才可獲取皮膚css文件

下載并解壓語言包langs文件夾放置項目根目錄,中文下載鏈接 ,其他語言包選擇;

之后在頁面輕松使用組件

Vue+Webpack如何整合富文本編輯器TinyMce

以上是“Vue+Webpack如何整合富文本編輯器TinyMce”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:Vue+Webpack如何整合富文本編輯器TinyMce
文章來源:http://muchs.cn/article44/gdephe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計、建站公司、小程序開發(fā)、網(wǎng)站策劃響應式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)