天天即时:富文本编辑器 VUE-QUILL-EDITOR 使用教程 (最全)
npm install vue-quill-editor --save
2、引入 VUE-QUILL-EDITOR在全局中引入
(资料图)
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, /* { 默认全局 } */)
在指定的 vue 文件中引入
// 引入样式import "quill/dist/quill.core.css"import "quill/dist/quill.snow.css"import "quill/dist/quill.bubble.css" import { quillEditor } from "vue-quill-editor" export default { components: { quillEditor }}
3、在 VUE 中使用 <script> export default { data() { return { content: `这是 vue-quill-editor 的内容!
`, //双向数据绑定数据 editorOption: {}, //编辑器配置项 } }, methods: { onEditorBlur() {}, // 失去焦点触发事件 onEditorFocus() {}, // 获得焦点触发事件 onEditorChange() {}, // 内容改变触发事件 } }</script>
到这里一个默认的富文本编辑器已经导入使用了,如下图所视!
二.升级用法一般的,我们在使用的时候并不需要这么多功能,可以适当的对编辑器配置项进行配置。
editorOption: { 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"] //上传图片、上传视频 ] }, placeholder: "输入内容..." }, //编辑器配置项
可以根据自己的实际需求,保留相应的工具栏。
三.图片上传vue-quill-editor 默认的是以 base64 保存图片,会直接把图片 base64 和内容文本一起以字符串的形式提交到后端。这样小图片还行,如果要上传大图片会提示上传失败,优秀的前端打字员显然不会这样做。
思路可以先将图片上传至服务器,再将图片链接插入到富文本中显示图片上传可以自定义一个组件或者使用 iview 的上传图片的组件(我在项目中使用的是自定义的组件,这里演示使用 iview 组件上传)上传图片的组件需要隐藏,点击图片上传时调用 iview 的图片上传,上传成功后返回图片链接。在编辑器项中配置配置项editorOption: { modules: { toolbar: { container: toolbarOptions, // 工具栏 handlers: { "image": function(value) { if (value) { alert("点击了上传图片") } else { this.quill.format("image", false); } } } } placeholder: "输入内容..." }, //编辑器配置项 },
调用 iview 的上传组件。HTML:
CSS:.ivu-upload { display: none;}
JS:data () { return { content: "", editorOption: { modules: { toolbar: { container: toolbarOptions, // 工具栏 handlers: { "image": function (value) { if (value) { // 调用iview图片上传 document.querySelector(".ivu-upload .ivu-btn").click() } else { this.quill.format("image", false); } } } } } } }},methods: { handleSuccess (res) { // 获取富文本组件实例 let quill = this.$refs.myQuillEditor.quill // 如果上传成功返回图片URL if (res) { // 获取光标所在位置 let length = quill.getSelection().index; // 插入图片,res为服务器返回的图片链接地址 quill.insertEmbed(length, "image", res) // 调整光标到最后 quill.setSelection(length + 1) } else { // 提示信息,需引入Message Message.error("图片插入失败") } },}
这样就完成了图片上传的功能。
四.调整图片大小1.在原本的quill-editor能正常使用的情况下,安装quill-image-drop-module和quill-image-resize-module
npm install quill-image-drop-module -Snpm install quill-image-resize-module -S
2.我是在全局注册的quill-editor,在main.js中加入以下代码
//富文本编辑器import VueQuillEditor, { Quill } from "vue-quill-editor";import "quill/dist/quill.core.css";import "quill/dist/quill.snow.css";import "quill/dist/quill.bubble.css";import imageResize from "quill-image-resize-module" // 调整大小组件。import { ImageDrop } from "quill-image-drop-module"; // 拖动加载图片组件。Quill.register("modules/imageResize", imageResize );Quill.register("modules/imageDrop", ImageDrop);Vue.use(VueQuillEditor);
3.在 editorOption 中添加配置 在modules中与 history/toolbar平级
imageDrop: true, //图片拖拽imageResize: { //放大缩小 displayStyles: { backgroundColor: "black", border: "none", color: "white" }, modules: ["Resize", "DisplaySize", "Toolbar"]},
4.在项目文件 vue.config.js 加上配置。(这一步很重要,如果不配置会报错!)
const webpack = require("webpack"); //导入 webpack 模块 //在模块中加入configureWebpack: { plugins: [ new webpack.ProvidePlugin({ "window.Quill": "quill/dist/quill.js", "Quill": "quill/dist/quill.js" }) ], },
这样就导入完成了,如下图所示
-
天天即时:富文本编辑器 VUE-QUILL-EDITOR 使用教程 (最全)
博客园 2023-05-12
-
【实战总结】解冻银行卡被问最多的30组问题 2.0版_全球速讯
郭志浩律师 2023-05-12
-
南京栖霞山枫叶最佳观赏时间_南京栖霞山枫叶 全球今日报
互联网 2023-05-12
-
浏览器设置有误是因为什么原因 浏览器设置有误 全球球精选
城市网 2023-05-12
-
存款也有特种兵?
互联网 2023-05-12
-
环球报道:力生制药:子公司中央药业药品阿替洛尔片通过仿制药一致性评价
搜狐号-资本邦 2023-05-12
-
什么是印花税核定征收_什么是印花雪纺面料
互联网 2023-05-12
-
澳华内镜(688212)5月12日主力资金净卖出426.24万元
证券之星 2023-05-12
-
科学新发现|人类泛基因组首个草图问世
科技日报 2023-05-11
-
全球微头条丨泰拉瑞亚石中剑种子旅途模式_泰拉瑞亚石中剑种子
互联网 2023-05-11
-
天天即时:富文本编辑器 VUE-QUILL-EDITOR 使用教程 (最全)
博客园 2023-05-12
-
【实战总结】解冻银行卡被问最多的30组问题 2.0版_全球速讯
郭志浩律师 2023-05-12
-
南京栖霞山枫叶最佳观赏时间_南京栖霞山枫叶 全球今日报
互联网 2023-05-12
-
浏览器设置有误是因为什么原因 浏览器设置有误 全球球精选
城市网 2023-05-12
-
存款也有特种兵?
互联网 2023-05-12
-
环球报道:力生制药:子公司中央药业药品阿替洛尔片通过仿制药一致性评价
搜狐号-资本邦 2023-05-12
-
什么是印花税核定征收_什么是印花雪纺面料
互联网 2023-05-12
-
澳华内镜(688212)5月12日主力资金净卖出426.24万元
证券之星 2023-05-12
-
科学新发现|人类泛基因组首个草图问世
科技日报 2023-05-11
-
全球微头条丨泰拉瑞亚石中剑种子旅途模式_泰拉瑞亚石中剑种子
互联网 2023-05-11
-
旺夫相的特征_揭示女人七种旺夫相的特征 全球观速讯
互联网 2023-05-11
-
《剧院魅影》中文版首周预演圆满成功,李宸希诠释少年感子爵 快播报
中国网娱乐 2023-05-11
-
【昆明第二届融媒体网评大赛】关注特困老人 让城市温度“不打折”
昆明信息港 2023-05-11
-
孟加拉国发生雷击事故致5人死亡
中国新闻网 2023-05-11
-
北京发布雷电黄色预警,并有7级大风,伴有小冰雹 今日播报
北京日报客户端 2023-05-11
-
北京居然之家5亿元公司债拟实施回售 本次回售债券不进行转售|全球今日讯
观点网 2023-05-11
-
新车 | V12+三电机/1015马力 Aventador继任者 兰博基尼Revuelto实拍_世界百事通
懂车帝 2023-05-11
-
天舟六号货运飞船发射任务取得圆满成功_环球快讯
解放军报 2023-05-11
-
每日速读!谷歌将对其人工智能创建的图像进行特别标注
未央网 2023-05-11
-
上官飞辱骂荆无命,为何阿飞更痛苦?
一锅粥品名著 2023-05-11
-
2023天津建博会日程安排|世界信息
本地宝 2023-05-11
-
今日热讯:鲱鱼罐头到底有多臭谁来说说_鲱鱼罐头到底有多臭
互联网 2023-05-11
-
我就是这条街最靓的仔是什么歌词_我就是可爱的小甜心是哪首歌中的歌词
互联网 2023-05-11
-
2023年5月10日Brent原油价格最新行情预测
报告网 2023-05-11
-
四川长虹率先将AI大模型在智能电视落地应用-世界微动态
绵阳广播电视台 2023-05-11
-
千里戈壁,播下致富种子(经济新方位·县域经济观察)
环球网 2023-05-11
-
防治污染,让微生物“吃掉”有害气体
今日科学 2023-05-11
-
要闻速递:沙特阿拉伯拟制订进口食品通关要求
食品新闻网 2023-05-11
-
中泰证券:出版行业业绩稳中向上,教育数字化+IP版权驱动行业价值重估
互联网 2023-05-11
-
言必行 行必果 干必成 言必行行必果下一句
城市网 2023-05-11