vue3+ts - wangeditor 富文本编辑器的使用

本文介绍了如何在Vue3+TS项目中集成wangeditor富文本编辑器,包括配置编辑器工具栏、限制输入字数、上传图片和视频的接口请求,以及通过@onChange获取编辑器内容的方法。详细代码和使用步骤可供参考。

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

  近期开发的一个项目有涉及到富文本编辑器的使用,所以在这里总结一下。对比了一下网络上的多种富文本框组件,发现 wangeditor 组件相对来说功能比较齐全也比较简单,所以在这里我分享一下这个的使用方法。

一、效果图

请添加图片描述

二、部分细节说明

wangeditor 的工具栏说明:

1、在不配置的情况下是默认显示全部的,可以通过打印 editor.getAllMenuKeys() 查看全部的工具栏
// 查看所有工具栏key
console.log(editor.getAllMenuKeys());
2、可以通过 toolbarConfig.excludeKeys 来设置不显示的工具栏:
// 工具栏配置
const toolbarConfig: Partial<IToolbarConfig> = {
   
   
  // 用于去掉不需要的工具栏配置
  excludeKeys: [
    "insertVideo", // 去掉插入视频功能
    "fullScreen", // 去掉全屏功能
  ],
};
3、在editorConfig中配置编辑器,比如只能输入多少个字,上传图片、视频接口请求等
// 编辑器配置
const editorConfig: Partial<IEditorConfig> = {
   
   
  // 最长输入2000字
  maxLength: 2000,
  // 进入页面不自动聚焦
  autoFocus: true,
  MENU_CONF: {
   
   },
};
4、可以通过 @onChange 方法中获取到富文本编辑器里面的内容
// 获得输入的内容
const handleChange = (editor: any) => {
   
   
// editor.getHtml() 获取带标签的全部内容
// editor.getText() 获取文本内容
  console.log(editor.getHtml())
};
5、调用接口实现上传图片和视频

需要先在editorConfig中设置MENU_CONF: {},然后 editorConfig.MENU_CONF["uploadImage"]方法是上传图片,editorConfig.MENU_CONF["uploadVideo"]是上传视频:

// 上传图片
editorConfig.MENU_CONF["uploadImage"] = {
   
   
  async customUpload(file: any, insertFn: any) {
   
   
    // 在这里面处理相关上传图片的需求
  },
};

### 集成富文本编辑器Vue3TypeScript 项目 在 Vue3TypeScript 项目的开发过程中,选择合适的富文本编辑器对于提升用户体验至关重要。以下是几种推荐的富文本编辑器及其集成方法。 #### 推荐的富文本编辑器 1. **Quill** Quill 是一个简单易用且功能全面的富文本编辑器[^1]。它支持高度自定义的主题和模块化设计,非常适合需要灵活扩展性的项目。然而,在 Vue3TypeScript 环境下使用时,可能需要额外安装类型声明文件以获得更好的开发体验。 2. **Editor.js** Editor.js 提供了极其优雅的 UI 设计,其模块化的工具链允许开发者轻松构建复杂的编辑界面。尽管它的学习曲线稍陡,但对于追求视觉效果的应用来说是一个不错的选择。 3. **CKEditor 5** CKEditor 5 是一款现代化的富文本编辑器,具有良好的性能表现和支持现代 Web 标准的能力。它提供了官方的 Vue 组件库 `@ckeditor/ckeditor5-vue`,能够很好地兼容 Vue3,并且内置了完整的 TypeScript 支持。 4. **WangEditor** WangEditor 被广泛应用于国内项目中,文档详尽且易于上手[^2]。虽然主要面向 JavaScript 用户群,但在 TypeScript 项目中的应用也较为普遍。需要注意的是,部分高级特性可能缺乏详细的类型定义。 5. **TinyMCE** TinyMCE 是另一个强大的选项,尤其适用于复杂场景下的内容创作需求[^4]。通过安装依赖项 `@types/tinymce` 可以为该项目添加必要的类型支持,从而更好地适应 TypeScript 开发环境。 #### 实现过程概述 为了具体说明如何在一个基于 Vue3TypeScript 的环境中设置这些编辑器之一——这里我们选取 CKEditor 5 进行演示: ##### 安装依赖 首先确保已正确初始化 npm 或 yarn 工程后执行如下命令来获取所需资源: ```bash npm install --save @ckeditor/ckeditor5-build-classic @ckeditor/ckeditor5-vue ``` 或者如果你更倾向于 Yarn,则运行: ```bash yarn add @ckeditor/ckeditor5-build-classic @ckeditor/ckeditor5-vue ``` ##### 创建组件 接着创建一个新的 Vue 单文件组件用于封装此编辑器逻辑: ```vue <template> <div> <ck-editor v-model="editorData" :config="editorConfig"></ck-editor> </div> </template> <script lang="ts"> import { defineComponent, ref } from &#39;vue&#39;; import CKEditor from &#39;@ckeditor/ckeditor5-vue&#39;; export default defineComponent({ components: { &#39;ck-editor&#39;: CKEditor.component, }, setup() { const editorData = ref(&#39;<p>Hello world!</p>&#39;); const editorConfig = {}; return { editorData, editorConfig }; } }); </script> ``` 上述代码片段展示了基本配置方式以及双向绑定机制的实际运用情况。 ##### 注意事项 当实际操作遇到问题时可以参考特定教程进一步排查解决办法[^3];另外记得调整路径映射等相关 webpack 设置以便顺利加载静态资产文件。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值