laravel+vue組合的項(xiàng)目中引入ueditor方式(打包成組件形式)
前言:最近寫(xiě)東西需要用到ueditor,并且需要是在vue組件中引入。
(本博客默認(rèn)你已經(jīng)配置了laravel+vue的項(xiàng)目環(huán)境,如果還沒(méi)有配置好的的小伙伴,可以看看我的另一篇文章,鏈接:
http://www.dbjr.com.cn/article/122369.htm )
1、下載editor
這個(gè)直接去ueditor的官網(wǎng)下載其PHP版本的就可以了,沒(méi)什么好說(shuō)的
2、移到項(xiàng)目目錄中(主要講如何放置配置文件和靜態(tài)資源文件)
打開(kāi)下載好的ueditor目錄,如果版本沒(méi)有錯(cuò)也沒(méi)出什么問(wèn)題,應(yīng)該就會(huì)看到如下目錄及文件
這里面:ueditor.all.js、ueditor.config.js、ueditor.parse.js以及l(fā)ang/zh-cn/zh-cn.js 是我們需要拿來(lái)在vue中加載的配置文件,所以我直接放在了resources/assets/js目錄下(當(dāng)然這里我們推薦的是引入這些配置文件對(duì)應(yīng)的.min.js的文件,如果有的話。。。還有放置的目錄也可以自己定義,
不過(guò)這里我們?yōu)榱朔奖銋^(qū)分和引入,所以就按前面說(shuō)的目錄來(lái)放了),像這樣
當(dāng)然,放置好了配置文件,剩下的四個(gè)目錄我們就直接放在laravel默認(rèn)的靜態(tài)資源目錄public/js下面,像這樣:
3、定義公共的ueditor組件(方面多處引用)
這里同樣為了方便引入,我們直接在ueditor的配置文件的同級(jí)目錄下新建UEditor.vue組件
然后編寫(xiě)我們的ueditor組件,這里為了方便喜歡“偷懶”小伙伴們😄,就不放圖片了,直接上代碼(是不是很貼心)
<template> <div :id="id"> </div> </template> <style scoped> </style> <script> import './ueditor.config.js' import './ueditor.all.min.js' //引入相應(yīng)的配置文件,具體路徑請(qǐng)根據(jù)自己配置文件放置的路徑以及公共組件定義的路徑自行修改 import './ueditor.parse.min.js' import './lang/zh-cn/zh-cn.js' export default { props: { }, data(){ return { id: Math.ceil(Math.random()*100000) + 'editor' } }, mounted() { this.editor = UE.getEditor(this.id) // 獲取編輯器實(shí)例化的對(duì)象 }, methods: { getUEContent() { // 獲取內(nèi)容方法 return this.editor.getContent() } } } </script>
好了,我們的公共編輯器組件就已經(jīng)定義好啦。
可能會(huì)有些小伙伴覺(jué)得ueditor的工具欄實(shí)在是太多了,好多都是自己幾乎用不到的,放在那里占地方不說(shuō),還降低了我們項(xiàng)目的加載速度,這里也許有些看過(guò)ueditor.config.js 配置文件的小伙伴應(yīng)該會(huì)看到這樣一項(xiàng)配置:
這里我們看到它的注釋已經(jīng)明確的告訴我們它的作用了:工具欄上的所有的功能按鈕和下拉框,可以在new編輯器的實(shí)例時(shí)選擇自己需要的重新定義
所以很簡(jiǎn)單了,想要精簡(jiǎn)編輯器的小伙伴們可以直接在我們的公共ueditor組件的生命周期函數(shù)mounted里覆蓋此配置就好啦,附上一個(gè)我自己配置的代碼:
mounted() { window.UEDITOR_CONFIG.toolbars = [[ 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', '|', 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|', 'fontfamily', 'fontsize' ]] this.editor = UE.getEditor(this.id) }
4、使用ueditor組件
到這里我們已經(jīng)可以直接在我們其他任意的vue組件里使用我們的公共組件了:
在script標(biāo)簽中直接引入公共組件的UEditor.vue 文件,像這樣:import UE from '../editor/UEditor.vue';
然后注冊(cè)該組件:
components: { UE }
接下來(lái)我們就可以直接在template模板中使用UE組件了:
<template lang="html"> <div id="add"> <div id="myueditor"> <UE ref="ue"></UE> </div> </div> </template>
這里我們使用了ref給組件注冊(cè)了引用信息,這樣我們就可以在這個(gè)父組件里調(diào)用我們編輯器組件的獲取內(nèi)容方法getUEContent()(這個(gè)方法調(diào)用了ueditor的getContent()方法,忘記的小伙伴可以去上面或者自己的代碼里回顧一下),像這樣:
<button @click="getUEContent()">獲取內(nèi)容</button>//模版里定義一個(gè)button綁定getUEContent()方法
然后注冊(cè)getUEContent()方法:
methods: { getUEContent() { let content = this.$refs.ue.getUEContent();//在這里調(diào)用了子組件ueditor組件的getContent()方法 this.$notify({ title: '獲取成功,可在控制臺(tái)查看!', message: content, type: 'success' }); console.log(content) } }
好了,大功告成,趕緊去試試你的編輯器吧!
- vue 項(xiàng)目引入echarts 添加點(diǎn)擊事件操作
- 淺談在vue-cli3項(xiàng)目中解決動(dòng)態(tài)引入圖片img404的問(wèn)題
- vue cli4.0項(xiàng)目引入typescript的方法
- Vue-cli3項(xiàng)目引入Typescript的實(shí)現(xiàn)方法
- vue項(xiàng)目中引入vue-datepicker插件的詳解
- vue學(xué)習(xí)筆記五:在vue項(xiàng)目里面使用引入公共方法詳解
- Vant的安裝和配合引入Vue.js項(xiàng)目里的方法步驟
- Vue項(xiàng)目如何引入bootstrap、elementUI、echarts
相關(guān)文章
vue實(shí)現(xiàn)簡(jiǎn)單全選和反選功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡(jiǎn)單全選和反選功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09Vue中使用Echarts儀表盤(pán)展示實(shí)時(shí)數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了Vue中使用Echarts儀表盤(pán)展示實(shí)時(shí)數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11el-form表單el-form-item label不換行問(wèn)題及解決
這篇文章主要介紹了el-form表單el-form-item label不換行問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Vue項(xiàng)目每次發(fā)版后要清理瀏覽器緩存問(wèn)題解決辦法
最近項(xiàng)目更新頻繁,每次一更新客戶都說(shuō)還跟之前的一樣,一查原因是因?yàn)榭蛻魶](méi)有清空瀏覽器的緩存,所以為了方便客戶看到最新版本,開(kāi)始調(diào)研再發(fā)布新版本后自動(dòng)清理緩存,這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目每次發(fā)版后要清理瀏覽器緩存問(wèn)題的解決辦法,需要的朋友可以參考下2024-02-02Vue實(shí)現(xiàn)注冊(cè)頁(yè)面的用戶交互詳解
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)注冊(cè)頁(yè)面的用戶交互的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們深入掌握vue有一定的幫助,需要的小伙伴可以參考下2023-12-12淺談el-table中使用虛擬列表對(duì)對(duì)表格進(jìn)行優(yōu)化
我們會(huì)經(jīng)常使用表格,如果數(shù)據(jù)量大就直接可以分頁(yè),如果多條可能會(huì)影響表格的卡頓,那么應(yīng)該如何進(jìn)行優(yōu)化,感興趣的可以了解一下2021-08-08vue3表單參數(shù)校驗(yàn)及正則表達(dá)式舉例詳解
最近項(xiàng)目中有一個(gè)校驗(yàn)身份證號(hào)手機(jī)號(hào)的業(yè)務(wù),索性給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于vue3表單參數(shù)校驗(yàn)及正則表達(dá)式的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04創(chuàng)建Vue項(xiàng)目以及引入Iview的方法示例
這篇文章主要介紹了創(chuàng)建Vue項(xiàng)目以及引入Iview的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12ElementUI實(shí)現(xiàn)el-form表單重置功能按鈕
本文主要介紹了Element使用el-form時(shí),點(diǎn)擊重置按鈕或者取消按鈕時(shí)會(huì)實(shí)現(xiàn)表單重置效果,具有一定的參考價(jià)值,感興趣的可以了解一下2021-07-07