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

Vue如何使用富文本編輯器Vue-Quill-Editor

這篇文章主要為大家展示了Vue如何使用富文本編輯器Vue-Quill-Editor,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來(lái)看看吧。

你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)擁有實(shí)力堅(jiān)強(qiáng)的技術(shù)研發(fā)團(tuán)隊(duì)及素養(yǎng)的視覺(jué)設(shè)計(jì)專才。

使用教程(注意細(xì)看總結(jié)部分,寫(xiě)了幾點(diǎn),希望有所幫助):
1、安裝插件:npm install vue-quill-editor
2、安裝插件依賴:npm install quill
3、main.js文件中引入:

import Vue from 'vue'
import VueQuillEditor from 'vue-quill-editor'

import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'

Vue.use(VueQuillEditor)
new Vue({
 VueQuillEditor,
 render: h => h(App),
}).$mount('#app')

4、vue頁(yè)面中使用(代碼完整,復(fù)制就能使用):

<template>
 <div id="quillEditorId">
  <el-upload
   class="avatarUploader"
   action="https://jsonplaceholder.typicode.com/posts/"
   :show-file-list="false"
   :on-success="handleAvatarSuccess"
   :before-upload="beforeAvatarUpload"
  >
   <img v-if="imageUrl" :src="imageUrl" class="avatar" />
   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  </el-upload>
  <quill-editor
   id="myQuillEditorId"
   ref="myQuillEditor"
   v-model="ruleForm.editeContent"
   :options="editorOption"
   @change="handelEditorChange($event)"
  >
  </quill-editor>
 </div>
</template>
<script>
const toolbarOptions = [
 ['bold', 'italic', 'underline', 'strike'], //加粗,斜體,下劃線,刪除線
 ['blockquote', 'code-block'], //引用、代碼塊兒
 [{ header: 1 }, { header: 2 }], //標(biāo)題,鍵值對(duì)的形式;1、2表示字體大小
 [{ list: 'ordered' }, { list: 'bullet' }], //列表
 [{ script: 'sub' }, { script: 'super' }], //上下標(biāo)
 [{ indent: '-1' }, { indent: '+1' }], //縮進(jìn)
 [{ direction: 'rtl' }], //文本方向
 [{ size: ['small', false, 'large', 'huge'] }], //字體大小
 [{ header: [1, 2, 3, 4, 5, 6, false] }], //幾級(jí)標(biāo)題
 [{ color: [] }, { background: [] }], //字體顏色,字體背景顏色
 [{ font: [] }], //字體
 [{ align: [] }], //對(duì)齊方式
 ['clean'], //清除字體樣式
 ['image'], //上傳圖片、上傳視頻(video)、超鏈接(link)
]
export default {
 data() {
  return {
   imageUrl: '',
   editeContent: '',
   editorOption: {
    modules: {
     clipboard: {
      // 粘貼版,處理粘貼時(shí)候的自帶樣式
      matchers: [[Node.ELEMENT_NODE, this.HandleCustomMatcher]],
     },
     toolbar: {
      container: toolbarOptions, // 工具欄
      handlers: {
       image: function(value) {
        if (value) {
         // 獲取隱藏的上傳圖片的class,不一定是.el-icon-plus。觸發(fā)上傳圖片事件
         document.querySelector('.el-icon-plus').click()
        } else {
         this.quill.format('image', false)
        }
       },
      },
     },
    },
    placeholder: '',
   },
  }
 },
 computed: {},
 async mounted() {},
 methods: {
  handleAvatarSuccess(res, file) {
   // 圖片上傳成功后的回調(diào)
   console.log(res, file)
  },
  beforeAvatarUpload(data) {
   // 思路:上傳圖片至服務(wù)后,拿到返回的圖片地址。直接創(chuàng)建image標(biāo)簽插入光標(biāo)所在的位置
   // 圖片上傳服務(wù)(本地服務(wù)或者阿里云服務(wù))
   // 獲取富文本組件實(shí)例
   let quill = this.$refs.myQuillEditor.quill
   // 上傳服務(wù)成功后,按根據(jù)光標(biāo)位置把圖片插入編輯器中
   if (data.url) {
    // 獲取光標(biāo)所在位置,data.url表示上傳服務(wù)后返回的圖片地址
    let length = quill.getSelection().index
    // 插入圖片,data.url為服務(wù)返回的圖片鏈接地址
    quill.insertEmbed(length, 'image', data.url)
    // 調(diào)整光標(biāo)到最后
    quill.setSelection(length + 1)
   } else {
    this.$message.closeAll()
    this.$message.error('圖片插入失敗')
   }
  },
  handelEditorChange(el) {
   console.log(el, 'el')
  },
  HandleCustomMatcher(node, Delta) {
   // 文字、圖片等,從別處復(fù)制而來(lái),清除自帶樣式,轉(zhuǎn)為純文本
   let ops = []
   Delta.ops.forEach(op => {
    if (op.insert && typeof op.insert === 'string') {
     ops.push({
      insert: op.insert,
     })
    }
   })
   Delta.ops = ops
   return Delta
  },
 },
}
</script>
<style scoped lang="scss">
#quillEditorId {
 .avatarUploader {
  display: none; // 隱藏上傳圖片組件
 }
}
</style>

總結(jié):

1、變量toolbarOptions表示自定義的工具欄,可以參照官網(wǎng)(官網(wǎng)寫(xiě)的比較簡(jiǎn)單)或者細(xì)看本文代碼(有詳細(xì)注釋);
2、如果不單獨(dú)處理圖片,圖片會(huì)被直接轉(zhuǎn)義成base64,跟隨DOM一塊兒上傳服務(wù);
3、本文對(duì)圖片做了自定義處理,選擇本地圖片時(shí),會(huì)單獨(dú)上傳到服務(wù),返回地址后,直接插入到富文本編輯中的當(dāng)前節(jié)點(diǎn)??创a中editorOption的handlers的image函數(shù),以及插入富文本編輯器當(dāng)前光標(biāo)函數(shù)beforeAvatarUpload,代碼中有詳細(xì)注釋;
4、粘貼板,變量clipboard。如果需要清理復(fù)制的自帶樣式,使用粘貼板進(jìn)行清理,函數(shù)HandleCustomMatcher;
5、對(duì)于復(fù)制粘貼的情況,多說(shuō)一句。過(guò)程中,編輯器已經(jīng)將原有的DOM轉(zhuǎn)為編輯器允許存在的DOM元素,所以這塊兒不用再處理(處理起來(lái),也會(huì)有點(diǎn)復(fù)雜)。

以上就是關(guān)于Vue如何使用富文本編輯器Vue-Quill-Editor的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。

新聞名稱:Vue如何使用富文本編輯器Vue-Quill-Editor
鏈接分享:http://jinyejixie.com/article42/ggsghc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)域名注冊(cè)、做網(wǎng)站網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
荃湾区| 大港区| 白山市| 日喀则市| 阜阳市| 武夷山市| 壤塘县| 濮阳县| 光泽县| 遂昌县| 乌鲁木齐县| 偏关县| 江达县| 明溪县| 东光县| 巫溪县| 绥中县| 淮阳县| 轮台县| 沂南县| 荔波县| 大港区| 梅河口市| 长武县| 隆化县| 平乐县| 峨边| 青岛市| 普宁市| 奉节县| 丘北县| 万州区| 衡南县| 临朐县| 滨州市| 嵊泗县| 昔阳县| 天气| 新竹县| 娄烦县| 读书|