国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解vue中使用vue-quill-editor富文本小結(jié)(圖片上傳)

2024-05-06 15:40:12
字體:
供稿:網(wǎng)友

vue-quill-editor是我們再使用vue框架的時候常用的一個富文本編輯器,在進(jìn)行富文本編輯的時候,我們往往要插入一些圖片,vue-quill-editor默認(rèn)的處理方式是直接將圖片轉(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ù)器。再將圖片鏈接插入到富文本中,以達(dá)到最優(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: [             // 工具欄配置, 默認(rèn)是全部       ['bold'],       ['italic'],       ['underline'],       ['strike'],       [{'list':'ordered'},{'list': 'bullet' }],       ['blockquote'], ['code-block'],       ['link'],       ['image'],       [{'list': 'ordered'}, {'list': 'bullet'}],      ],      handlers: {       'image': function (value) {        if (value) {         // 給個點(diǎn)擊觸發(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)整光標(biāo)到最后    quill.setSelection(length + 1)   }else{    this.$message.error('圖片插入失敗')   }   this.fileList = fileList   this.uillUpdateImg = false  }, }}</script><style scoped></style>            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 东乡县| 泸定县| 普兰店市| 两当县| 吕梁市| 九龙县| 思南县| 泗阳县| 区。| 贞丰县| 探索| 托克托县| 龙州县| 雅安市| 正宁县| 塔河县| 都昌县| 尚义县| 怀安县| 黑河市| 谷城县| 扶绥县| 威信县| 阿拉善盟| 苏尼特右旗| 丹巴县| 石狮市| 昌吉市| 延津县| 房山区| 镇康县| 罗平县| 吉木萨尔县| 分宜县| 淮阳县| 砚山县| 申扎县| 雅安市| 盐城市| 杂多县| 耒阳市|