您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Vue+Webpack如何整合富文本編輯器TinyMce”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Vue+Webpack如何整合富文本編輯器TinyMce”這篇文章吧。
選擇一個(gè)合適的富文本編輯器對(duì)于一個(gè)前端項(xiàng)目至關(guān)重要,這次我基于Vue來開發(fā)我項(xiàng)目中的前端部分,經(jīng)過權(quán)衡選擇了tinymce。其在UI,功能都很適合,tinymce官方文檔:點(diǎn)擊打開鏈接;
引入tinymce 我選用的版本4.7.4
npm install tinymce -S
將tinymce創(chuàng)建為Vue的組件,便于日后復(fù)用,創(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 進(jìn)行了tinymce的初始化工作,調(diào)用 tinymce.init(setting),setting為配置信息這樣我們便初步配置完成了editor組件
在其他頁面使用組件
<template> <div class="app-container"> <div> <!-- 組件有兩個(gè)屬性 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文件夾放置于項(xiàng)目根目錄下,這樣tinymce才可獲取皮膚css文件
下載并解壓語言包langs文件夾放置項(xiàng)目根目錄,中文下載鏈接 ,其他語言包選擇;
之后在頁面輕松使用組件
以上是“Vue+Webpack如何整合富文本編輯器TinyMce”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。