在Vue項(xiàng)目中使用Ueditor總結(jié)

基本使用

1.下載資源包

因?yàn)閡editor在npm上暫無官方依賴包,因此需要先到官網(wǎng)下載文件包,我下載的是jsp版本的

2.引入依賴文件

將下載后的文件夾命名為UE,并放入到項(xiàng)目static文件夾中,然后再main.js引入依賴文件(我這里是全局引入,也可以再使用的組件中引入);

import '../static/UE/ueditor.config.js'
import '../static/UE/ueditor.all.min.js'
import '../static/UE/lang/zh-cn/zh-cn.js'
import '../static/UE/ueditor.parse.min'
3.初始化ueditor

我這里是單獨(dú)將ueditor抽成一個(gè)組件,因此初始化時(shí)的id和配置都是從父組件傳入的。定義組件:

<template>
  <div>
    <script :id=id type="text/plain"></script>
  </div>
</template>
<script>
export default {
  name: 'UE',
  data () {
    return {
      editor: null
    }
  },
  props: {
    config: {
      type: Object
    },
    id: {
      type: String
    },
    content: {
      type: String
    }
  },
  mounted () {
    this._initEditor()
  },
  methods: {
    _initEditor () { // 初始化
      this.editor = UE.getEditor(this.id,this.config)
    },
    getUEContent () { // 獲取含標(biāo)簽內(nèi)容方法
      return this.editor.getContent()
    }
  },
  destroyed () {
    this.editor.destroy()
  }
</script>
4.使用組件:

(1).通過import引入定義好的組件;
import UE from '@/components/ueditor/ueditor.vue'
(2).在對(duì)應(yīng)的位置使用組件

<el-form-item label="文章內(nèi)容" prop="articleContent">
  <UE :id=id :config=config  ref="ue"></UE>
</el-form-item>

(3).在父組件的data中定義初始化配置

// 初始化Ueditor配置參數(shù)
      config: {
        initialFrameWidth: null,
        initialFrameHeight: 300
      },
      id: 'container',// 不同編輯器必須不同的id

(4).在父組件中獲取編輯器內(nèi)容

// 獲取富文本內(nèi)容
    getEdiotrContent () {
      let content = this.$refs.ue.getUEContent() // 調(diào)用子組件方法
      this.articleData.articleContent = content
    }

使用配置

如果需要使用到圖片上傳功能就需要進(jìn)行在資源文件ueditor.config.js中正確配置資源路徑和圖片上傳路徑
資源加載路徑:window.UEDITOR_HOME_URL = "/static/UE/";
文件上傳路徑:serverUrl: 后臺(tái)接口地址

跳坑心得

1.開發(fā)環(huán)境正常使用,但生產(chǎn)環(huán)境樣式文件未加載,編輯器無法正常顯示,圖片上傳功能無法使用

(1)樣式文件未加載
在開發(fā)環(huán)境我配置的資源路徑是:window.UEDITOR_HOME_URL = "/static/UE/";
但當(dāng)我發(fā)布到生產(chǎn)環(huán)境時(shí)樣式完全亂了。
—— 這是因?yàn)槲掖a不是直接放在服務(wù)器根目錄,而是下級(jí)文件夾中,因此資源文件無法正確加載,因?yàn)樾枰_發(fā)環(huán)境和生產(chǎn)環(huán)境配置不同的window.UEDITOR_HOME_URL,當(dāng)然如果代碼放在根目錄,此處無需修改
(2)圖片上傳無法使用
—— 這是因?yàn)榈脑陂_發(fā)環(huán)境上傳路徑做了代理,而static文件不會(huì)被打包壓縮,在生產(chǎn)環(huán)境請(qǐng)求路徑就不對(duì)。
以上兩個(gè)問題,我做了如下配置:

  var serverApi = '';
  if (process.env.NODE_ENV === "production" || process.env.NODE_ENV === "productionTest") { // 生產(chǎn)/測試環(huán)境
    window.UEDITOR_HOME_URL = "/newconsole/modules/static/UE/";
    serverApi = "/newconsole/static/UE/config/getConfig"
  }else { // 開發(fā)環(huán)境
    window.UEDITOR_HOME_URL = "/static/UE/";
    serverApi = "/api/static/UE/config/getConfig"
  }

  var URL = window.UEDITOR_HOME_URL || getUEBasePath();
     /**
     * 配置項(xiàng)主體。注意,此處所有涉及到路徑的配置別遺漏URL變量。
     */
    window.UEDITOR_CONFIG = {

        //為編輯器實(shí)例添加一個(gè)路徑,這個(gè)不能被注釋
        UEDITOR_HOME_URL: URL,
        // 服務(wù)器統(tǒng)一請(qǐng)求接口路徑
        serverUrl: serverApi
      }

這樣就可以很好的兼任開發(fā)環(huán)境和生產(chǎn)環(huán)境。

2.編輯器內(nèi)容過多時(shí),會(huì)將編輯器撐開拉長,體驗(yàn)不好

這個(gè)問題處理就比較簡單了,只需要在ueditor.config.js文件中修改autoHeightEnabled:false 即可,這樣如果內(nèi)容過多時(shí)就會(huì)出現(xiàn)滾動(dòng)條,而不會(huì)撐開編輯器。

好了,以上就是此次使用Ueditor的一點(diǎn)個(gè)人總結(jié),希望能給遇到同樣問題的小伙伴一點(diǎn)點(diǎn)幫助。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評(píng)論 19 139
  • Eleni閱讀 145評(píng)論 0 1
  • 燥熱的天,微涼的雨,幾頁白紙,些許感慨,貝薇似乎該感謝這一切。在這個(gè)所有孩子都急切渴望成熟的年代,中考的結(jié)束意味著...
    二的橙子閱讀 365評(píng)論 0 0
  • 每次下定決心忘記 卻總是想起 說好的冰封記憶 讓一切變成回憶 可是 要我怎么能忘記你
    爺非傻蛋閱讀 108評(píng)論 0 0
  • 1.UITableView和ScrollView觸摸事件沖突 由于項(xiàng)目需求,在tableView中添加了一些新的數(shù)...
    曉飛90閱讀 3,971評(píng)論 2 2

友情鏈接更多精彩內(nèi)容