vue使用Vue-Quill-Editor富文本编辑器(附加工具栏title、图片大小修改功能)

这篇博客介绍了如何在Vue项目中使用Vue-Quill-Editor,包括安装、组件封装和在文件中的引用。作者还详细讲解了如何为工具栏添加title提示以及实现图片尺寸修改功能,包括创建qulEditor.js、安装插件、修改webpack配置和更新组件代码。教程中给出了每个步骤的详细操作,并提供了完成这些附加功能后的完整代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本来是想用tinymac富文本编辑器的,不过参考网上的教程弄了很久都没有解决图片预览的问题。所以就改用了Vue-Quill-Editor,发现这个使用起来还是很方便的。下面上教程:

1、安装Vue-Quill-Editor

npm install vue-quill-editor -s

2、封装Vue-Quill-Editor组件

自行创建一个quEditor.vue文件,写入下面代码:

<template>
  <div>
    <quill-editor v-model="content" ref="myQuillEditor" class="editor" :options="editorOption" @blur="onEditorBlur($event)" @focus="onEditorFocus($event)" @change="onEditorChange($event)">
    </quill-editor>
    <div>
      {
   {
   content}}
    </div>
  </div>
</template> 
<script>
// require styles 引入样式
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
import {
    quillEditor } from 'vue-quill-editor'
// 工具栏配置
const toolbarOptions = [
  ['bold','italic', 'underline', 'strike'], // 加粗 斜体 下划线 删除线 -----['bold', 'italic', 'underline', 'strike']
   ['blockquote', 'code-block'], // 引用  代码块-----['blockquote', 'code-block']
  [{
    header: 1 }, {
    header: 2 }], // 1、2 级标题-----[{ header: 1 }, { header: 2 }]
   [{
    list: 'ordered' }, {
    list: 'bullet' }], // 有序、无序列表-----[{ list: 'ordered' }, { list: 'bullet' }]
   [{
    script: 'sub' }, {
    script: 'super' }], // 上标/下标-----[{ script: 'sub' }, { script: 'super' }]
  [{
    indent: '-1' }, {
    indent: '+1' }], // 缩进-----[{ indent: '-1' }, { indent: '+1' }]
   [{
   'direction': 'rtl'}], // 文本方向-----[{'direction': 'rtl'}]
   [{
    size: ['small', false, 'large', 'huge'] }], // 字体大小-----[{ size: ['small', false, 'large', 'huge'] }]
   [{
    header: [1, 2, 3, 4, 5, 6, false] }], // 标题-----[{ header: [1, 2, 3, 4, 5, 6, false] }]
   [{
    color: [] }, {
    background: [] }], // 字体颜色、字体背景颜色-----[{ color: [] }, { background: [] }]
   [{
    font: [] }], // 字体种类-----[{ font: [] }]
  [{
    align: [] }], // 对齐方式-----[{ align: [] }]
  ['clean'], // 清除文本格式-----['clean']
  ['image'] // 链接、图片、视频-----['link', 'image', 'video']
]
export default {
   
  components: {
    quillEditor },
  data () {
   
    return {
   
      content: null,
      editorOption: {
   
        placeholder: '请输入文本...',
        theme: 'snow',
        modules: {
   
          toolbar: {
   
            container: toolbarOptions
          }
        }
      }
    }
  },
  methods: {
   
    onEditorBlur () {
   
      // 失去焦点事件
    },
    onEditorFocus () {
   
      // 获得焦点事件
    },
    onEditorChange () {
   
      // 内容改变事件
    }
  }
}
</script>
<style>
.editor {
   
  line-height: normal !important;
  height: 400px;
  /* border: 1px solid #DCDFE6; */
}
.ql-snow .ql-tooltip[data-mode=link]::before {
   
  content: "请输入链接地址:";
}
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
   
    border-right: 0px;
    content: '保存';
    padding-right: 0px;
}

.ql-snow .ql-tooltip[data-mode=video]::before {
   
    content: "请输入视频地址:";
}

.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
   
  content: '14px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
   
  content: '10px';
}
.ql-snow 
### 实现 Vue-Quill-Editor 扩展表格功能 为了在 `vue-quill-editor` 中实现扩展表格功能,可以通过引入第三方库来增强 Quill 编辑器的功能。一种常见的解决方案是结合使用 `vue-quill-editor` 和 `vue-better-table` 来处理表格插入和编辑的需求[^1]。 #### 安装依赖包 首先,在项目中安装必要的 npm 包: ```bash npm install vue-quill-editor vue-better-table --save ``` #### 配置 Quill 插件 接着配置 Quill 的自定义模块以支持表格操作。可以在项目的入口文件或组件内部完成此设置: ```javascript import Vue from 'vue'; import { Quill } from 'vue-quill-editor'; // 导入并注册表格模块 import TableModule from './quill-modules/table-module'; // 自定义的表格模块路径 Quill.register('modules.table', TableModule); Vue.component('my-rich-text-editor', { data() { return { editorOption: { modules: { table: true, toolbar: [ ['table'] /* 添加到工具栏 */ ] } }, content: '' }; } }); ``` 上述代码展示了如何通过创建一个新的 Quill 模块 (`TableModule`) 并将其添加至编辑器选项中的方式启用表格特性[^3]。 #### 组件模板结构 对于具体的页面布局设计,则可以根据实际需求调整 HTML 结构。例如下面是一个简单的文章管理系统界面示例,其中包含了用于展示列表以及新增按钮的部分[^2]: ```html <template> <page-container title="文章管理"> <template #extra> <el-button type="primary">添加文章</el-button> </template> <!-- 表格主体 --> </page-container> </template> ``` 需要注意的是,这里仅提供了框架性的指导建议;具体实现细节可能因个人偏好和技术栈的不同而有所差异。如果希望进一步优化用户体验或者解决特定场景下的问题,还可以探索更多高级特性和定制化开发方案。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值