wxvirus wxvirus
首页
  • Go文章

    • Go语言学习
  • Rust

    • Rust学习
  • Java

    • 《Java》
  • Python文章

    • Python
  • PHP文章

    • PHP设计模式
  • 学习笔记

    • 《Git》
  • HTML
  • CSS
  • JS
  • 技术文档
  • GitHub技巧
  • 刷题
  • 博客搭建
  • 算法学习
  • 架构设计
  • 设计模式
  • 学习
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

无解的lifecycle

let today = new Beginning()
首页
  • Go文章

    • Go语言学习
  • Rust

    • Rust学习
  • Java

    • 《Java》
  • Python文章

    • Python
  • PHP文章

    • PHP设计模式
  • 学习笔记

    • 《Git》
  • HTML
  • CSS
  • JS
  • 技术文档
  • GitHub技巧
  • 刷题
  • 博客搭建
  • 算法学习
  • 架构设计
  • 设计模式
  • 学习
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

  • CSS

  • JS

  • flutter

  • vue3

    • vuecli多环境配置
    • 全局使用antdv图标组件
    • 集成富文本插件wangeditor
      • 集成富文本插件 wangeditor
    • vue分页组件
    • 登录页开发
    • 后台布局开发
    • vue3配合vite初始化项目的一些配置
  • 特效

  • framework

  • 页面
  • vue3
wxvirus
2021-12-25

集成富文本插件wangeditor

# 集成富文本插件 wangeditor

官网:wangeditor (opens new window)

在Vue3项目中安装

npm i wangeditor --save
1

安装后几行代码即可创建一个编辑器

import E from 'wangeditor' const editor = new E("#div1") editor.create()
1

我们在页面中添加表单内容

<a-modal title="文档表单" v-model:visible="modalVisible" :confirm-loading="modalLoading" @ok="handleModalOk">
    <a-form :modal="doc" :label-col="{span: 6}">
      <a-form-item label="名称">
        <a-input v-model:value="doc.name"/>
      </a-form-item>
      <a-form-item label="父文档">
        <!-- replaceFields 替换 treeNode 中 title,value,key,children 字段为 treeData 中对应的字段 -->
        <a-tree-select
            v-model:value="doc.parent"
            style="width: 100%"
            :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
            :tree-data="treeSelectData"
            placeholder="请选择父文档"
            tree-default-expand-all
            :replaceFields="{title: 'name', key: 'id', value: 'id'}"
        >
        </a-tree-select>
      </a-form-item>
      <a-form-item label="排序">
        <a-input v-model:value="doc.sort"/>
      </a-form-item>
      <a-form-item label="内容">
        <div id="content"></div>	<!-- 这一块div放富文本内容 -->
      </a-form-item>
    </a-form>
  </a-modal>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

我们在setup()中进行定义

import E from 'wangeditor' const editor = new E("#div1") editor.create()
1

页面并没有显示

这里我们一开始是写在了一个Modal里。

  1. 我们认为不显示的原因是在setup()里,create()方法没有执行到,所以将editor.create()放到onMounted里,但是还是没有显示。
  2. 其次,我们把<div id="content"></div>移除出模态框进行显示,看看是否能够显示出来,这一次是显示出来了,于是我们又将create方法放进setup里,看看能否成功,结果不能;所以,主要问题还是模态框的问题。
  3. 因为页面Modal初始不显示,我们页面上根本就没有这样的一个元素,所以初始的时候我们写#id去获取这个选择器的时候选择不到任何的元素,所以它不显示。跟页面上有没有这个元素有关系

进行调整

我们此时将渲染的方法写到点击编辑和新增的时候弹出模态框也就是创建模态框的方法里

// 编辑
const edit = (record: any) => {
    modalVisible.value = true

    setTimeout(() => {
        editor.create()
    }, 100)
}

// 新增
const add = () => {
    modalVisible.value = true

    setTimeout(() => {
        editor.create()
    }, 100)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

提示

这里我们还加了延时器,这里主要还是因为你页面创建Modal的时间可能会比执行create方法要慢,所以加了一个延时器

富文本显示成功

编辑 (opens new window)
上次更新: 2021/12/25, 17:44:26
全局使用antdv图标组件
vue分页组件

← 全局使用antdv图标组件 vue分页组件→

最近更新
01
vue3配合vite初始化项目的一些配置
07-26
02
网盘系统开发学习
07-24
03
linux多进程
06-19
更多文章>
Theme by Vdoing | Copyright © 2021-2024 wxvirus 苏ICP备2021007210号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式