溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Vue.js中如何使用Ueditor富文本編輯器

發(fā)布時(shí)間:2021-07-09 13:58:09 來(lái)源:億速云 閱讀:154 作者:Leah 欄目:web開(kāi)發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)Vue.js中如何使用Ueditor富文本編輯器,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

1. 總體思路

1.1 模塊化

vue的很大的一個(gè)優(yōu)勢(shì)在于模塊化,我們可以通過(guò)模塊化實(shí)現(xiàn)頁(yè)面和邏輯的復(fù)用。所以可以把Ueditor重新封裝成一個(gè).vue的模板文件。其他組件通過(guò)引入這個(gè)模板實(shí)現(xiàn)代碼復(fù)用。

1.2 數(shù)據(jù)傳輸

首先父組件需要設(shè)置編輯器的長(zhǎng)度、寬度、初始文本,這些數(shù)據(jù)可以通過(guò)props來(lái)傳遞。編輯器中的文本變化可以通過(guò)vue自定義事件向父組件傳遞。

2. 具體實(shí)現(xiàn)步驟

2.1 引入關(guān)鍵的JS以及CSS文件

將以下文件全部拷貝到項(xiàng)目中

Vue.js中如何使用Ueditor富文本編輯器

2.2 配置Ueditor.config.js

首先配置URL參數(shù),我們需要將這個(gè)路徑指向剛才拷貝的文件的更目錄,注意這里最好使用相對(duì)路勁。

var URL = window.UEDITOR_HOME_URL || '/static/ueditor/';

然后是默認(rèn)寬度高度的設(shè)置

,initialFrameWidth:null // null表示寬度自動(dòng)
,initialFrameHeight:320

其他功能的配置可以在官方文檔查看

2.3 創(chuàng)建編輯器模板

我們需要在編輯器模板中import Ueditor核心JS庫(kù),并添加contentChange回調(diào)函數(shù)就大功告成了。

之所以使用import語(yǔ)法來(lái)引入核心JS庫(kù)是因?yàn)檫@樣更符合ES6模塊化的規(guī)范,我看到網(wǎng)上有人建議在main.js中引入JS,但是過(guò)早地引入JS可能導(dǎo)致頁(yè)面首次加載緩慢。

<template>
 <div ref="editor"></div>
</template>

<script>
 /* eslint-disable */
 import '../../../assets/js/ueditor/ueditor.config';
 import '../../../assets/js/ueditor/ueditor.all';
 import '../../../assets/js/ueditor/lang/zh-cn/zh-cn';

 import { generateRandonInteger } from '../../../vuex/utils';

 export default {
 data() {
  return {
  id: generateRandonInteger(100000) + 'ueditorId',
  };
 },
 props: {
  value: {
  type: String,
  default: null,
  },
  config: {
  type: Object,
  default: {},
  }
 },
 watch: {
  value: function value(val, oldVal) {
  this.editor = UE.getEditor(this.id, this.config);
  if (val !== null) {
   this.editor.setContent(val);
  }
  },
 },
 mounted() {
  this.$nextTick(function f1() {
  // 保證 this.$el 已經(jīng)插入文檔

  this.$refs.editor.id = this.id;
  this.editor = UE.getEditor(this.id, this.config);

  this.editor.ready(function f2() {
   this.editor.setContent(this.value);

   this.editor.addListener("contentChange", function () {
   const wordCount = this.editor.getContentLength(true);
   const content = this.editor.getContent();
   const plainTxt = this.editor.getPlainTxt();
   this.$emit('input', { wordCount: wordCount, content: content, plainTxt: plainTxt });
   }.bind(this));

   this.$emit('ready', this.editor);
  }.bind(this));
  });
 },
 };
</script>

<style>
 body{
  background-color:#ff0000;
 }
</style>

3. 編輯器的使用

使用編輯器模板的時(shí)候我需要通過(guò)props傳入config以及初始文本value。

<template xmlns:v-on="http://www.w3.org/1999/xhtml">
 <div class="edit-area">
  <ueditor v-bind:value=defaultMsg v-bind:config=config v-on:input="input" v-on:ready="ready"></ueditor>
 </div>

</template>

<script>
 import ueditor from './ueditor.vue';

 export default {
 components: {
  ueditor,
 },
 data() {
  return {
  defaultMsg: '初始文本', 
  config: {
   initialFrameWidth: null,
   initialFrameHeight: 320,
  },
  };
 },
 };
</script>

關(guān)于Vue.js中如何使用Ueditor富文本編輯器就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI