vue PC端页面引入vue-quill-editor富文本插件

大城市里の小女人 提交于 2021-02-12 08:54:54

项目需要:在添加新类别的弹框中,要在输入框中输入多条描述信息,不同的描述信息要换行输入,输入后点击确定传给后端,接口返回成功后点击查看刚添加的新类别时,描述框中展现多条换行的描述信息也要跟填写时一样(即不同的描述换行展示),他们说用富文本比较方便,所以找到了这个插件,刚好满足我想要的功能效果,写下来当笔记。

参考文章: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(/&lt;/g, '<')
      str = str.replace(/&gt;/g, '>')
      console.log(str)
      return str
}

 

处理过后成这样了:

就是上面打印的第二行这样的,现在再把替换后的字符串赋值给上面插件标签quill-editor中绑定的contain,渲染出来即为我们之前输入时的样子

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!