项目需要:在添加新类别的弹框中,要在输入框中输入多条描述信息,不同的描述信息要换行输入,输入后点击确定传给后端,接口返回成功后点击查看刚添加的新类别时,描述框中展现多条换行的描述信息也要跟填写时一样(即不同的描述换行展示),他们说用富文本比较方便,所以找到了这个插件,刚好满足我想要的功能效果,写下来当笔记。
参考文章:Vue基于vue-quill-editor富文本编辑器使用心得
安装插件:
npm install vue-quill-editor
然后是在需要的组件引入,当然也可以在main.js中引入:
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 {
data () {
content: '',
editorOption: {
modules: {
toolbar: [
[{ 'list': 'bullet' }] // 这里我只要无序列表图标
]
},
theme: 'snow'
},
},
components: {
quillEditor
}
}
HTML部分:
<quill-editor ref="text" v-model="content" class="myQuillEditor" :options="editorOption" />
看看效果吧:
默认情况下工具栏有很多的功能图标,加粗、斜体、上传图片等等,如果有些功能运用不到又不想看到的话,可以在这里可以进行设置设置,将toolbar中用不到的移出掉即可,这里我直接复制参考文章大佬的代码了:
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'] //上传图片、上传视频
]
},
theme:'snow'
}
}
这里的modules就是上面data中的 editorOption 的modules,想要啥功能按照你的需要进行添加或者移除就行了。
这里我只是简单的用到列表的效果而已,想看的其他功能介绍的话,可以去看看参考文章的介绍,那边的大佬说的更详细
后续追加:
当我们输入上面的几条列表信息后,直接打印出来是这样的
这个有点看不懂,这样的字符串放到插件也不能渲染成我们想要的 list 标签的效果,此时需要用个方法处理一下转成我们想要看到的富文本的样子,这个方法是我在别人博客里看到的,如下:
escapeStringHTML (str) {
str = str.replace(/</g, '<')
str = str.replace(/>/g, '>')
console.log(str)
return str
}
处理过后成这样了:
就是上面打印的第二行这样的,现在再把替换后的字符串赋值给上面插件标签quill-editor中绑定的contain,渲染出来即为我们之前输入时的样子
来源:oschina
链接:https://my.oschina.net/u/4275499/blog/3437588