网站首页 > 博客文章 正文
下载Vue-Quill-Editor
npm install vue-quill-editor --save
下载quill(Vue-Quill-Editor需要依赖)
npm install quill --save
代码
<template>
<div class="about">
<div class="editor_container">
<quill-editor
v-model="content"
ref="myQuillEditor"
:options="editorOption"
>
</quill-editor>
<input type="text" v-model="texts"/>
<button type="button" @click="onclickForm">提交</button>
</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 {
name: 'about',
components: {quillEditor},
data() {
return {
content: '',
texts: '',
// 编辑器配置
editorOption: {
placeholder: '在这里输入内容',
modules: {
toolbar: [
['bold', 'italic', 'underline', 'strike'], // 加粗、倾斜、下划线、删除线
['blockquote', 'code-block'],// 引用代码块
[{'header': 1}, {'header': 2}], // 标题,键值对应的形式,1,2 表示字体大小
[{'list': 'ordered'}, {'list': 'bullet'}], // 列表
[{'script': 'sub'}, {'script': 'super'}], // 上下标
[{'indent': -1}, {'indent': +1}], // 缩进
[{'direction': 'rtl'}], // 文本方向
[{'size': ['small', false, 'large', 'huge']}], // 字体大小
[{'header': [1, 2, 3, 4, 5, 6, false]}], // 几级标题
[{'color': []}, {'background': []}], // 字体颜色,字体背景颜色
[{'font': []}], // 字体
[{'align': []}], // 对齐方式
['clean'], //清除
['image', 'video'], // 上传图片、上传视频
]
}
}
}
},
mounted() {
let content = ''; // 请求返回值
this.str = this.escapeStringHTML(content)
},
methods: {
// 转码
escapeStringHTML(str) {
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
return str
},
onclickForm() {
console.log(this.content)
this.content = ''
}
},
computed: {
editor() {
return this.$refs.myQuillEditor.quill
}
}
}
</script>
<style scoped>
.editor_container /deep/ .ql-editor {
min-height: 300px;
}
</style>
自定义 toolbar 菜单
// 编辑器配置
editorOption: {
placeholder: '在这里输入内容',
modules: {
toolbar: [
['bold', 'italic', 'underline', 'strike'], // 加粗、倾斜、下划线、删除线
['blockquote', 'code-block'],// 引用代码块
[{'header': 1}, {'header': 2}], // 标题,键值对应的形式,1,2 表示字体大小
[{'list': 'ordered'}, {'list': 'bullet'}], // 列表
[{'script': 'sub'}, {'script': 'super'}], // 上下标
[{'indent': -1}, {'indent': +1}], // 缩进
[{'direction': 'rtl'}], // 文本方向
[{'size': ['small', false, 'large', 'huge']}], // 字体大小
[{'header': [1, 2, 3, 4, 5, 6, false]}], // 几级标题
[{'color': []}, {'background': []}], // 字体颜色,字体背景颜色
[{'font': []}], // 字体
[{'align': []}], // 对齐方式
['clean'], //清除
['image', 'video'], // 上传图片、上传视频
]
}
}
存储及将数据库中的数据反显为HTML字符串
后台接收到数据后会将字符中的标签进行转码,所以我们要先进行一个解码的操作让他变成标签形式的字符串:
例如后台接收的数据如下:"<h1>title</h1>" ,对应解码后就是`<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="about">
<div class="editor_container">
<quill-editor
v-model="content"
ref="myQuillEditor"
:options="editorOption"
>
</quill-editor>
<input type="text" v-model="texts"/>
<button type="button" @click="onclickForm">提交</button>
</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 {
name: 'about',
components: {quillEditor},
data() {
return {
content: '',
texts: '',
// 编辑器配置
editorOption: {
placeholder: '在这里输入内容',
modules: {
toolbar: [
['bold', 'italic', 'underline', 'strike'], // 加粗、倾斜、下划线、删除线
['blockquote', 'code-block'],// 引用代码块
[{'header': 1}, {'header': 2}], // 标题,键值对应的形式,1,2 表示字体大小
[{'list': 'ordered'}, {'list': 'bullet'}], // 列表
[{'script': 'sub'}, {'script': 'super'}], // 上下标
[{'indent': -1}, {'indent': +1}], // 缩进
[{'direction': 'rtl'}], // 文本方向
[{'size': ['small', false, 'large', 'huge']}], // 字体大小
[{'header': [1, 2, 3, 4, 5, 6, false]}], // 几级标题
[{'color': []}, {'background': []}], // 字体颜色,字体背景颜色
[{'font': []}], // 字体
[{'align': []}], // 对齐方式
['clean'], //清除
['image', 'video'], // 上传图片、上传视频
]
}
}
}
},
mounted() {
let content = ''; // 请求返回值
this.str = this.escapeStringHTML(content)
},
methods: {
// 转码
escapeStringHTML(str) {
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
return str
},
onclickForm() {
console.log(this.content)
this.content = ''
}
},
computed: {
editor() {
return this.$refs.myQuillEditor.quill
}
}
}
</script>
<style scoped>
.editor_container /deep/ .ql-editor {
min-height: 300px;
}
</style>
猜你喜欢
- 2024-10-02 推荐!这几款基于vue3和vite的开箱即用的中后台管理模版,拒绝加班
- 2024-10-02 几款非常好用的富文本编辑器 #富文本编辑器
- 2024-10-02 一款好用的富文本编辑器「wangeditor」运用(附源码+视频讲解)
- 2024-10-02 VUE 项目如何快速优化?| 原力计划
- 2024-10-02 Web前端培训:五种JavaScript富文本编辑器的比较
- 2024-10-02 setup语法糖:在 Vue3 中集成CKEditor富文本编辑器
- 2024-10-02 推荐五个优秀的富文本编辑器(富文本编辑器是做什么的)
- 2024-10-02 如何在Vue中使用Ueditor富文本编辑器,详情介绍如下
- 2024-10-02 基于 vue.js 富文本编辑框CKEditor 5
- 2024-10-02 VUE前端编程:富文本编辑器wangEditor 5 工具条定制
你 发表评论:
欢迎- 07-21谷歌云发生全球范围大规模宕机(谷歌云什么时候上线的)
- 07-21谷歌云全球崩盘!OpenAI Shopify瘫痪,万亿级服务为何一夜失灵?
- 07-21国泰君安:谷歌云的利润率大超预期,AI投资的回报正逐步显现
- 07-21谷歌云技术故障引发全球互联网服务大瘫痪
- 07-21谷歌发生长达数小时云服务宕机事件,全球超70项谷歌云服务停止正常运行!谷歌致歉并发布事故报告
- 07-21开源|一款类excel报表设计系统,支持拖拽式和word模板设计
- 07-21SpringBoot利用ThreadPoolTaskExecutor批量插入百万级数据实测!
- 07-21云端藏经阁:一款开源、精美、可独立部署的知识管理神器
- 最近发表
-
- 谷歌云发生全球范围大规模宕机(谷歌云什么时候上线的)
- 谷歌云全球崩盘!OpenAI Shopify瘫痪,万亿级服务为何一夜失灵?
- 国泰君安:谷歌云的利润率大超预期,AI投资的回报正逐步显现
- 谷歌云技术故障引发全球互联网服务大瘫痪
- 谷歌发生长达数小时云服务宕机事件,全球超70项谷歌云服务停止正常运行!谷歌致歉并发布事故报告
- 开源|一款类excel报表设计系统,支持拖拽式和word模板设计
- SpringBoot利用ThreadPoolTaskExecutor批量插入百万级数据实测!
- 云端藏经阁:一款开源、精美、可独立部署的知识管理神器
- 电商秒杀/库存扣减:基于JUC的并发控制实战案例
- 简单易用的.NET免费开源RabbitMQ操作组件EasyNetQ
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)