视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Vue-Quill-Editor富文本编辑器的使用教程
2020-11-27 22:07:08 责编:小OO
文档


本文为大家分享了Vue Quill Editor富文本编辑器的具体使用方法,供大家参考,具体内容如下

先看效果图:

    

 1、下载Vue-Quill-Editor 

npm install vue-quill-editor --save

2、下载quill(Vue-Quill-Editor需要依赖) 

npm install quill --save 

3、代码 

<template>
 <div class="edit_container">
 <quill-editor 
 v-model="content" 
 ref="myQuillEditor" 
 :options="editorOption" 
 @blur="onEditorBlur($event)" @focus="onEditorFocus($event)"
 @change="onEditorChange($event)">
 </quill-editor>
 </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 {
 components: {
 quillEditor
 },
 data() {
 return {
 content: `<p></p><p><br></p><ol><li><strong><em>Or drag/paste an image here.</em></strong></li><li><strong><em>rerew</em></strong></li><li><strong><em>rtrete</em></strong></li><li><strong><em>tytrytr</em></strong></li><li><strong><em>uytu</em></strong></li></ol>`,
 editorOption: {}
 }
 },
 methods: {
 onEditorReady(editor) { // 准备编辑器
 
 },
 onEditorBlur(){}, // 失去焦点事件
 onEditorFocus(){}, // 获得焦点事件
 onEditorChange(){}, // 内容改变事件
 },
 computed: {
 editor() {
 return this.$refs.myQuillEditor.quill;
 },
 }
}
</script>

OK,搞定,简洁的富文本编辑器就展现在你眼前了,另外附上API。Vue-Quill-Editor

4、存储及将数据库中的数据反显为HTML字符串

后台接收到数据后会将字符中的标签进行转码,所以我们要先进行一个解码的操作让他变成标签形式的字符串:
例如后台接收的数据如下:"<h1>title<"  ,对应解码后就是`<h1>title</h1>`。

//把实体格式字符串转义成HTML格式的字符串
escapeStringHTML(str) {
 str = str.replace(/</g,'<');
 str = str.replace(/>/g,'>');
 return str;
}

然后将返回值赋值给对应的参数: 

<div v-html="str" class="ql-editor">
 {{str}}
</div>

上面的str就是转码函数返回的值,我们要先在data中定义,所以我现在将新增跟展示放在一起,代码如下:

<template>
 <div class="edit_container">
 <!-- 新增时输入 -->
 <quill-editor 
 v-model="content" 
 ref="myQuillEditor" 
 :options="editorOption" 
 @blur="onEditorBlur($event)" @focus="onEditorFocus($event)"
 @change="onEditorChange($event)">
 </quill-editor>
 <!-- 从数据库读取展示 -->
 <div v-html="str" class="ql-editor">
 {{str}}
 </div>
 </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 {
 components: {
 quillEditor
 },
 data() {
 return {
 content: `<p></p><p><br></p><ol><li><strong><em>Or drag/paste an image here.</em></strong></li><li><strong><em>rerew</em></strong></li><li><strong><em>rtrete</em></strong></li><li><strong><em>tytrytr</em></strong></li><li><strong><em>uytu</em></strong></li></ol>`,
 str: '',
 editorOption: {}
 }
 },
 methods: {
 onEditorReady(editor) { // 准备编辑器
 
 },
 onEditorBlur(){}, // 失去焦点事件
 onEditorFocus(){}, // 获得焦点事件
 onEditorChange(){}, // 内容改变事件
 // 转码
 escapeStringHTML(str) {
 str = str.replace(/</g,'<');
 str = str.replace(/>/g,'>');
 return str;
 }
 },
 computed: {
 editor() {
 return this.$refs.myQuillEditor.quill;
 },
 },
 mounted() {
 let content = ''; // 请求后台返回的内容字符串
 this.str = this.escapeStringHTML(content);
 }
}
</script>

 

下载本文
显示全文
专题