vue+wangeditor动态添加/删除富文本功能实现及问题解决

本文介绍了在Vue项目中使用WangEditor动态添加和删除富文本编辑器时遇到的问题及解决方法。在动态表单场景下,删除富文本编辑器后,下方富文本值出现错乱。解决思路是删除后重新创建富文本编辑器,并设置对应值,尽管此方法可能不优雅,但能实现功能。

vue+wangeditor动态添加/删除富文本功能实现及问题解决

前言: wangeditor是一个很好用的前端富文本编辑器,其功能强大,简单易上手让我这种前端小白简直爱不释手,然鹅在强大的工具或多或少都会有点小问题。今天就跟大家讲一下我在动态表单中使用它出现的问题以及最终的解决方法,有更好解决方法的大佬,欢迎不吝赐教。

说明:本次案例使用的是wangeditor V3,不同版本请自行参考其官网使用文档

V3官网基本用法说明: 1,安装:npm i wangeditor@3.1.1 ;
2,var E = require(‘wangeditor’) ;var editor = new E(’#editor’) ;editor.create()

本次案例要实现的功能UI如下,通过点击添加和删除按钮动态创建/删除表单元素和富文本编辑器,由于vue项目中使用的是ts,代码看起来有点不一样,但是本人也是ts小白,所以代码写的跟js基本一样,实现过程如下:

(UI图)
在这里插入图片描述
(实现代码)

private form = {
   
   
  chapterList: [
     {
   
   
       title: '',
       file: null,
       description: '',
       fileName: '',
       id: this.tempId
     }
   ]
 }
 
 private menus = [
   'head', 'bold', 'fontSize', 'fontName', 'italic',
   'underline', 'strikeThrough', 'foreColor', 'backColor',
   'link', 'list', 'justify', 'quote', 'emoticon', <
### 集成 WangEditorVue 2 为了在 Vue 2 中集成 WangEditor 富文本编辑器,需遵循一系列特定的操作流程来确保顺利安装和配置。 #### 安装依赖包 首先,在命令行界面执行如下指令以安装必要的软件包: ```bash npm install wangEditor --save ``` 此操作会将 WangEditor 添加至项目的 `node_modules` 文件夹内[^2]。 #### 创建 Editor 组件 创建一个新的组件用于封装 WangEditor 实例。下面是一个简单的例子,展示了如何构建这个组件: ```javascript <template> <div ref="editorElem" style="text-align:left"></div> </template> <script> import E from 'wangeditor' export default { name: "MyEditor", data() { return { editor: null, info_: '' } }, mounted() { const editor = new E(this.$refs.editorElem) // 自定义菜单配置和其他初始化设置 editor.config.menus = [ 'head', // 标题 'bold', // 粗体 'fontSize', // 字号 'fontName', // 字体 'italic', // 斜体 'underline', // 下划线 'strikeThrough', // 删除线 'foreColor', // 文字颜色 'backColor', // 背景颜色 'link', // 插入链接 'list', // 列表 'justify', // 对齐方式 'quote', // 引用 'emoticon', // 表情 'image', // 插入图片 'table' // 表格 ] editor.create() this.editor = editor; }, beforeDestroy() { // 销毁前清除实例 if (this.editor != null) { this.editor.destroy(); this.editor = null; } } } </script> ``` 上述代码片段中,通过引用 `wangEditor` 库并利用其 API 来定制化编辑器的功能选项以及外观布局。 #### 将 Editor 组件加入页面 最后一步是在目标视图或父级容器里注册并使用新创建的 MyEditor 组件: ```html <template> <div id="app"> <!-- 其他 HTML 结构 --> <my-editor></my-editor> <!-- 这里放置自定义编辑器组件 --> </div> </template> <script> // 假设已经按照官方指南设置了单文件组件环境... import MyEditor from './components/MyEditor.vue'; export default { components: { MyEditor } // 注册子组件 }; </script> ``` 这样就完成了基本的集成功能,可以根据实际需求进一步调整和完善编辑器的各项特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值