vue整合百度UEditor富文字編輯器使用教程
在前端開發的專案中,難免會遇到需要在頁面上整合一個富文字編輯器。那麼,如果你有這個需求,希望可以幫助到你。
vue是前端開發者所追捧的框架,簡單易上手,但是基於vue的富文字編輯器大多數太過於精簡。於是我將百度富文字編輯器放到vue專案中使用。效果圖如下
前端精品教程:百度網盤下載
廢話不多說。
1、使用vue-cli構建一個vue專案。然後下載UEditor原始碼,地址
把專案複製到vue專案的static檔案下。目的是讓服務可以訪問到裡面的檔案,開啟UEditor目錄檔案。這裡下載的是jsp版本的。檔名字沒有更改過。開啟裡面的ueditor.config.js檔案找到serverUrl把這行程式碼註釋了。這個程式碼是用來上傳圖片的後臺地址。如果不註釋了會請求報錯。編輯器跑起來再做服務配置修改地址。
2、在.vue檔案中引入主要js檔案
前端精品教程:百度網盤下載
?1 2 3 |
import ‘../../static/utf8-jsp/ueditor.config
'
import ‘../../static/utf8-jsp/ueditor.all' ;
import ‘../../static/utf8-jsp/lang/zh-cn/zh-cn';
|
3、在data中申明一個變數儲存UEditor的例項方便在vue的其他地方使用,然後申明一個變數儲存手動獲取的編輯器裡面的內容,再什麼一個變數儲存初始化時要寫入編輯器的內容。三個變數。如果操作得當。可以減少變數的時候。這是笨辦法
4、在vue的mounted鉤子函式中呼叫編輯器的方法生成例項儲存到剛剛申明的變數中,在例項中傳入引數。第一個是id,id是生成編輯器的div的id。第二個引數是一個物件。物件內容是對編輯器的配置。如資源訪問路徑,toolbars內容配置。
5、在html部分寫一個div標籤
<div id="editor" type="text/plain" style="width:1024px;height:500px;"></div>
6、然後配置資源路徑。在例項化的時候傳入的引數裡。第二個引數是一個物件。內容包括路徑。
前端精品教程:百度網盤下載
?1 2 3 4 |
this
.ue = UE.getEditor(
'editor'
,{
BaseUrl:
''
,
UEDITOR_HOME_URL:
'static/utf8-jsp/'
,
});
|
這個UEDITOR_HOME_URL就是配置編輯器自己訪問自己所需要的依賴的路徑。設定到存放的檔案下utf8-jsp是編輯器檔案的更目錄。目錄不一樣可自行更改
7、然後儲存。就可以在介面上顯示一個完整的富文字編輯器
8、如果要獲取內容則使用在data裡面申明的編輯器例項在vue中this.例項呼叫方法getContent()可以獲取到內容
9如果要設定內容則呼叫:setContent('歡迎使用ueditor');
更多方法參考官方文件。
10、文件內容屬於個人踩坑的心得。如有錯誤。請留言指出。謝謝
11、需要注意的是資源路徑容易搞錯。使用相對路徑即可
12、貼出程式碼
前端精品教程:百度網盤下載
html
?1 2 3 4 5 6 7 |
<
template
>
<
div
class
=
"hello"
>
<
div
id
=
"editor"
type
=
"text/plain"
style
=
"width:1024px;height:500px;"
></
div
>
<
button
@
click
=
"submits"
>儲存</
button
>
<
button
@
click
=
"xieru"
>寫入</
button
>
</
div
>
</
template
>
|
js
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<script>
import
'../../static/utf8-jsp/ueditor.config'
import
'../../static/utf8-jsp/ueditor.all';
import
'../../static/utf8-jsp/lang/zh-cn/zh-cn';
export default {
name:
'hello',
data () {
return {
ue:
'',
uedata: [],
xierudata: []
}
},
mounted() {
this.ue = UE.getEditor(
'editor',{
BaseUrl:
'',
UEDITOR_HOME_URL:
'static/utf8-jsp/',
// toolbars:[]
});
},
methods: {
submits(){
this.uedata.push(UE.getEditor(
'editor').getContent());
console.log(this.uedata.join(
"\n"
));
},
xieru(){
UE.getEditor(
'editor').setContent('歡迎使用ueditor');
}
}
}
</script>
|