Iblog项目中博文的文本编辑器采用了vue-quill-editor插件,本文将简单介绍其使用方法。
引入配置
- 安装模块
npm install vue-quill-editor --save
- index.js中引入组件
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)
注意必须引入样式,否则会出现编辑器排版的混乱。
- 组件中注册
// 在<script></script>之间插入 import { quillEditor, Quill } from \'vue-quill-editor\' // 工具栏配置 const toolbarOptions = [ [\'bold\', \'italic\', \'underline\', \'strike\'], [\'blockquote\', \'code-block\'], [{\'list\': \'ordered\'}, {\'list\': \'bullet\'}], [{\'indent\': \'-1\'}, {\'indent\': \'+1\'}], [{\'color\': []}, {\'background\': []}], [{\'align\': []}], [\'link\', \'image\'], [\'clean\'], [{\'size\': [\'small\', false, \'large\', \'huge\']}], [{\'header\': [1, 2, 3, 4, 5, 6, false]}], [{\'font\': []}] ] export default { data () { return { ... editorOption: { placeholder: \'提示语\', modules: { toolbar: { container: toolbarOptions, ... } } } ... } }, ... components: { \'quill-editor\': quillEditor }, ... }
- 使用组件
<div class="quill-box"> <template> <quill-editor v-model="content" :options="editorOption" ref="content"> </quill-editor> </template> </div>
经过上述配置即可使用quill富文本编辑器了。
更改图片按钮的事件函数
由于quill插件默认插入图片是base64格式的,若图片较大会引起内容太大无法保存到数据库里面,这样为了上传图片或者插入网络图片,要先更改图片按钮的事件下函数,具体是在editorOption->modules->toolbar中加入handlers对象,并插入名称为image的函数,函数的内容设定为自身所需内容,如下
data () { return { content: \'\', editorOption: { ... modules: { toolbar: { container: toolbarOptions, handlers: { \'image\': function (value) { if (value) { // 自定义内容 } else { this.quill.format(\'image\', false) } } } } } } }
插入图片网络图片
若想插入来自网络的图片,即提供图片网址,可以加入以下语句
const range = this.quill.getSelection() const value = prompt(\'提示语\') this.quill.insertEmbed(range.index, \'image\', value, Quill.sources.USER)
但是这种方法嵌入的图片暂时不支持调整图片大小。
使用样式渲染内容
使用该插件所保存的内容需经过原样式渲染才能还原编辑时的效果,配置方法为,在<div>标签中加入ql-editor样式,并且内容需为html格式呈现
<div class="ql-editor" v-html="articleContent"></div>