成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vue中使用vue-quill-editor富文本的示例分析

小編給大家分享一下vue中使用vue-quill-editor富文本的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有托里免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

為什么要使用Vue

Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創(chuàng)建可維護性和可測試性更強的代碼庫,Vue允許可以將一個網(wǎng)頁分割成可復(fù)用的組件,每個組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網(wǎng)頁中相應(yīng)的地方,所以越來越多的前端開發(fā)者使用vue。

vue-quill-editor是我們再使用vue框架的時候常用的一個富文本編輯器,在進行富文本編輯的時候,我們往往要插入一些圖片,vue-quill-editor默認的處理方式是直接將圖片轉(zhuǎn)成base64編碼,這樣的結(jié)果是整個富文本的html片段十分冗余,通常來講,每個服務(wù)器端接收的post的數(shù)據(jù)大小都是有限制的,這樣的話有可能導(dǎo)致提交失敗,或者是用戶體驗很差,數(shù)據(jù)要傳遞很久才全部傳送到服務(wù)器。

1.下載Vue-Quill-Editor

npm install vue-quill-editor --save

2.下載quill(Vue-Quill-Editor需要依賴)

npm install quill --save

3.使用

import { quillEditor } from "vue-quill-editor"; //調(diào)用編輯器
import 'quill/dist/quill.core.css';
import 'quill/dist/quill.snow.css';
import 'quill/dist/quill.bubble.css';

本次使用到了富文本的封裝和上傳圖片,因要求使用element-ui框架,我上傳圖片的時候選擇了element-ui的Upload上傳組件將圖片上傳到服務(wù)器。再將圖片鏈接插入到富文本中,以達到最優(yōu)的體驗。

子組件中將改變的值,直接發(fā)送給父組件,父組件來完成邏輯處理

<template>
 <div>
  <el-upload      //直接隱藏掉就好了,用功能不用樣式
   v-show="false"
   id="quill-upload"
   action="/api/product/upload.do"
   name="upload_file"
   multiple
   :limit="3"
   list-type="picture"
   :show-file-list="false"
   :before-upload="beforeUpload"
   :on-error="uploadError"
   :on-success="handleExceed">
   <el-button size="small" type="primary" ></el-button>
   <div slot="tip" class="el-upload__tip">只能上傳jpg/png文件,且不超過500kb</div>
  </el-upload>
  <el-row v-loading="uillUpdateImg">
   <quillEditor
    ref="myQuillEditor"
    @change="onEditorChange($event)"
    v-model="value"
    :options="editorOption"/>
  </el-row>
 </div>
</template>
<script>
import { quillEditor } from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
export default {
 name: "richText",
 components:{quillEditor},
 props:['content'],               //父組件傳過來的,將傳過來的渲染到富文本編輯器
 data(){
  return{
   uillUpdateImg:false,            //根據(jù)圖片上傳狀態(tài)來確定是否顯示loading動畫
   serverUrl:'', //上傳的圖片服務(wù)器地址
   value:this.content,             //富文本內(nèi)容
   editorOption: {               //符文本編輯器的配置
    placeholder: '',
    theme: 'snow',
    modules: {
     toolbar: {
      container: [             // 工具欄配置, 默認是全部
       ['bold'],
       ['italic'],
       ['underline'],
       ['strike'],
       [{'list':'ordered'},{'list': 'bullet' }],
       ['blockquote'], ['code-block'],
       ['link'],
       ['image'],
       [{'list': 'ordered'}, {'list': 'bullet'}],
      ],
      handlers: {
       'image': function (value) {
        if (value) {
         // 給個點擊觸發(fā)Element-ui,input框選擇圖片文件
         document.querySelector('#quill-upload input').click()
        } else {
         this.quill.format('image', false);
        }
       }
      }
     }
    }
   }
  }
 },
 methods:{
  onEditorChange({ quill, html, text }) {   //富文本編輯器內(nèi)容發(fā)生改變的時候
   this.value = html
   this.$emit('textChange',html)       //將富文本編輯器輸入的文本發(fā)送給父組件,父組件涉及提交添加或者更改
  },
  beforeUpload(){               //上傳圖片之前開啟loading
   this.uillUpdateImg = true
  },
  uploadError(){               //圖片上傳失敗,關(guān)閉loading
   this.uillUpdateImg = false
   this.$message.error('圖片插入失敗')
  },
  handleExceed(response, file, fileList){   //圖片添加成功
   let quill = this.$refs.myQuillEditor.quill
   console.log(response)
   if (response.status === 0) {
    let length = quill.getSelection().index;
    // 插入圖片 response.data.url為服務(wù)器返回的圖片地址
    quill.insertEmbed(length, 'image', response.data.url)
    // 調(diào)整光標到最后
    quill.setSelection(length + 1)
   }else{
    this.$message.error('圖片插入失敗')
   }
   this.fileList = fileList
   this.uillUpdateImg = false
  },
 }
}
</script>
<style scoped>
</style>

配置中的handlers是用來定義自定義程序的,然而我們配置完后會懵逼地發(fā)現(xiàn),整個富文本編輯器的工具欄的圖片上傳等按鈕都不見了 只保留了幾個基本的富文本功能。

這個是因為添加自定義處理程序?qū)⒏采w默認的工具欄和主題行為

因此我們要再自行配置下我們需要的工具欄,所有功能的配置如下,大家可以按需配置,這里看起來一大堆,也不美觀,大家也可以配置一個單獨的config文件引入。

有一點注意的地方,父組件中傳入子組件中的值,子組件里面發(fā)生改變以后再傳給父組件。將變量時存放在props屬性中的,我們在調(diào)用變量的時候是跟data里面的變量一樣的,都是通過this.變量來調(diào)用,這個問題就是說父組件傳入子組件的變量是不能this.變量直接改變的,要在data或者computed屬性里面重新定義一個變量,或者監(jiān)聽props接受變量的變化。改變data或者computed屬性里面的變量就不會報錯了。

看完了這篇文章,相信你對“vue中使用vue-quill-editor富文本的示例分析”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)頁名稱:vue中使用vue-quill-editor富文本的示例分析
URL地址:http://jinyejixie.com/article8/iehoop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站改版、服務(wù)器托管網(wǎng)站營銷、移動網(wǎng)站建設(shè)、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
合江县| 凤庆县| 讷河市| 九江县| 呼和浩特市| 神农架林区| 潜山县| 嵊州市| 滕州市| 滕州市| 建湖县| 绥化市| 汪清县| 广灵县| 尼玛县| 巫山县| 古田县| 富川| 毕节市| 湖北省| 深泽县| 屯昌县| 郯城县| 玛曲县| 龙岩市| 雷山县| 河北省| 顺昌县| 吴忠市| 定州市| 阜新市| 孟津县| 湘阴县| 武冈市| 资兴市| 南溪县| 会理县| 石棉县| 枣庄市| 山西省| 阿荣旗|