中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue怎么整合富文本編輯器TinyMce

發布時間:2022-10-28 09:20:17 來源:億速云 閱讀:159 作者:iii 欄目:開發技術

本篇內容主要講解“Vue怎么整合富文本編輯器TinyMce”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Vue怎么整合富文本編輯器TinyMce”吧!

選擇一個合適的富文本編輯器對于一個前端項目至關重要,這次我基于Vue來開發我項目中的前端部分,經過權衡選擇了tinymce。其在UI,功能都很適合。

引入tinymce 我選用的版本4.7.4

npm install tinymce -S

將tinymce創建為Vue的組件,便于日后復用,創建組件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的初始化工作,調用 tinymce.init(setting),setting為配置信息這樣我們便初步配置完成了editor組件

在其他頁面使用組件

<template>
  <div class="app-container">
    <div>
      <!-- 組件有兩個屬性 value 傳入內容雙向綁定 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:'我是富文本編輯器的內容',
        //tinymce的配置信息 參考官方文檔 https://www.tinymce.com/docs/configure/integration-and-setup/
        editorSetting:{
          height:400,
        }
      }
    },
    components:{
      'editor':editor
    }
  }
</script>
<style scoped>
</style>

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

Vue的優點

Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。

到此,相信大家對“Vue怎么整合富文本編輯器TinyMce”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

公安县| 钦州市| 广州市| 宁河县| 嘉荫县| 元江| 册亨县| 平泉县| 濮阳县| 铁力市| 电白县| 建昌县| 社旗县| 农安县| 哈密市| 全南县| 杂多县| 象山县| 绥宁县| 涿鹿县| 昌乐县| 崇明县| 湘乡市| 水城县| 宁乡县| 当涂县| 宣汉县| 化德县| 抚远县| 清徐县| 工布江达县| 界首市| 肥乡县| 台东县| 兴仁县| 汝城县| 阿荣旗| 鱼台县| 尖扎县| 保定市| 婺源县|