在 Vue 3 中使用 Vue-Quill 富文本 带格式渲染文本内容

9,414 阅读3分钟

Vue-Quill 是一个包装 Quill 编辑器,使其更易于在 Vue.js 应用程序中使用的库。Quill是一个流行的富文本编辑器,可以帮助我们实现各种文本编辑功能。在 Vue 3 中,我们可以通过 Vue-Quill 来集成 Quill 编辑器,并快速构建出一个强大的文本编辑器应用。

安装 Vue-Quill

首先,我们需要使用 npm 来安装 Vue-Quill:

npm install @vueup/vue-quill@latest --save

引入 Vue-Quill

在 Vue 3 项目中,我们可以在组件中引入 Vue-Quill 库,并注册相应的组件。以下是隐藏工具栏的示例代码:

<template>
  <div>
  <!-- 引入了 QuillEditor 组件,通过 :options 属性传递编辑器的选项参数,通过 v-model:content 实现双向绑定编辑器中的内容content 变量 -->
    <QuillEditor :options="editorOption" v-model:content="content" contentType="text" readOnly />
  </div>
</template>

<script setup>
// 引入了 Quill 编辑器,以及 QuillEditor 组件,并引入相应的 CSS 样式
import { QuillEditor,Quill } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css';
  components: {
    QuillEditor
  },
  const content = ref("");//定义content
  const editorOption= {
        modules: {
          toolbar: false // 这里将工具栏隐藏
        }
      }
</script>

上面的代码中,我们将 QuillEditor 组件作为子组件引入,并将 content 双向绑定到编辑器中。这里使用了 v-model 指令,可以方便的获取到编辑器中的内容。需要注意的是,我们需要引入匹配的 css 文件来渲染编辑器的样式。

image.png

配置 Quill 编辑器菜单栏

Vue-Quill 采用 Quill 编辑器作为底层实现,因此可以通过配置 Quill 选项来自定义编辑器的行为。以下是示例代码:

<template>
  <div>
    <QuillEditor v-model="content" :options="editorOptions" />
  </div>
</template>

<script setup>
// 引入了 Quill 编辑器,以及 QuillEditor 组件,并引入相应的 CSS 样式
import { QuillEditor,Quill } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css';
  components: {
    QuillEditor
  },
  const content = ref("");//定义content
 // 定义一个响应式的 editorOptions 对象,其中包含了需要配置的选项参数
  const editorOptions = reactive({
    modules: {
      toolbar: [  // 工具栏配置
        ['bold', 'italic', 'underline', 'strike'],  // 粗体、斜体、下划线、删除线
        [{ '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']  // 清除格式
      ]
    }
  })
</script>

上面的代码中,我们定义了一个 editorOptions 对象,并将其传递给 QuillEditor 组件。在该对象中,我们可以定义一个 module 对象,以设置编辑器的行为。在这里我们配置了编辑器的工具栏,包括粗体、斜体、下划线、编号列表、大小、字体、对齐等操作,可以根据需求进行自定义。

官方文档

总结

在 Vue 3 中使用 Vue-Quill 可以快速构建出一个强大的文本编辑器应用。Vue-Quill 提供了良好的封装和配置,方便我们根据需求进行自定义,从而实现各种高级的文本编辑功能,如加粗、斜体、下划线、段落排版、图片上传等。Vue-Quill 还支持响应式绑定,可以方便地将编辑器中的内容与 Vue 组件中的数据进行双向绑定,实现数据的实时同步。此外,Vue-Quill 采用了 Quill 编辑器作为编辑器核心,Quill 是一个流行的富文本编辑器,拥有强大的插件系统,可根据需求进行扩展和定制,因此在 Vue-Quill 中也可以轻松地引入自定义的 Quill 插件。除此之外,Vue-Quill 的文档和 API 非常详细和充分,易于开发人员学习和使用。总之,Vue-Quill 在 Vue 3 中的应用非常灵活、高效,并且易于扩展和定制,适合各种文本编辑场景的需求。希望这篇文章能够对读者在开发中遇到的文本编辑问题提供一些启示和思路,并且为大家带来实际的帮助。