博客
关于我
VUE3(二十六)基于wangeditor自定义富文本插件
阅读量:397 次
发布时间:2019-03-05

本文共 3590 字,大约阅读时间需要 11 分钟。

项目中需要使用到wangeditor,这里封装一个自定义组件,便于后期使用。

首先,官方文档:

1:安装

npm i wangeditor --save

2:组件代码

Wangeditor.vue

Wangeditor.ts

import {    onMounted, onBeforeUnmount, ref, watch } from 'vue';// 引入wangeditor组件import WangEditor from 'wangeditor';// 引入代码高亮组件import hljs from 'highlight.js'// 公共状态文件import {     webScoketObject } from "/@/hooks/common"; // 官方文档:https://doc.wangeditor.com/export default {     name: 'Wangeditor',  setup(props: any, content: any) {       // 获取编辑器实例html    const editor = ref();    // 编辑器实例对象    let instance: any = '';    /**     * @name: 监听公共状态栏值变化(控制抽屉显示)     * @author: camellia     * @email: guanchao_gc@qq.com     * @date: 2021-01-10      */    watch(      () => webScoketObject.is_click_send,      () => {           if (webScoketObject.is_click_send)        {             instance.txt.clear();          webScoketObject.is_click_send = false;        }      }    );    /**     * @name: 生命周期函数-----挂载完成     * @author: camellia     * @email: guanchao_gc@qq.com     * @date: 2021-01-19      */    onMounted(() => {         // 编辑器实例对象      instance = new WangEditor(editor.value);      //插入代码语言配置      instance.config.languageType = [        'Bash',        'C',        'C#',        'C++',        'CSS',        'Java',        'JavaScript',        'JSON',        'TypeScript',        'Plain text',        'Html',        'XML',        'SQL',        'Go',        'Kotlin',        'Lua',        'Markdown',        'PHP',        'Python',        'Shell Session',        'Ruby',        'typescript'      ]      // 自定义菜单      instance.config.menus = [        // 'head',        // 'bold', //字体加粗        // 'fontSize',//字号        // 'fontName',//字体        // 'italic',        // 'underline',//下划线        // 'strikeThrough',//删除线        // 'indent',        // 'lineHeight',        'foreColor',        // 'backColor',        'link',        // 'list',//列表        // 'todo',        // 'justify',//对其        // 'quote',// 引用        'emoticon',        'image',        // 'video',//视频        // 'table',//表格        'code',        // 'splitLine',        // 'undo',//撤销        // 'redo',//恢复      ];      // 代码高亮      instance.highlight = hljs;      // 开启本地上传图片(这是后端上传链接)      instance.config.uploadImgServer = '/upload-img';      // 限制上传图片格式      instance.config.uploadImgAccept = ['jpg', 'jpeg', 'png', 'gif', 'bmp'];      // 开启本地上传视频(这是后端上传链接)      instance.config.uploadVideoServer = '/api/upload-video';      // 设置编辑器高度      instance.config.height = 150;      // 设置编辑器页面层级      instance.config.zIndex = 10;      // 设置编辑器placeholder      instance.config.placeholder = '请输入您的文字!';      // 配置编辑器显示颜色      instance.config.colors = [        '#000000',        '#eeece0',        '#1c487f',        '#4d80bf'      ];      // 忽略粘贴内容中的图片      instance.config.pasteIgnoreImg = true;       Object.assign(instance.config, {           // wangeditor 值发生变化的时候        onchange() {             // 将值传递至父组件          content.emit('getWangEditorValue', instance.txt.html());        },        // 上传网络图片回调        linkImgCallback(src:string){             console.log('图片 src ', src)        },        // 上传网络视频回调        onlineVideoCallback(video:string) {             // 自定义回调内容,内容成功插入后会执行该函数          console.log('插入视频内容', video)        }      });      instance.create();    });     /**     * @name: 生命周期函数-----页面卸载之前     * @author: camellia     * @email: guanchao_gc@qq.com     * @date: 2021-01-19      */    onBeforeUnmount(() => {         instance.destroy();      instance = null;    });    return {         editor,    };  },};

3:调用实例:

4:最终效果

在这里插入图片描述

有好的建议,请在下方输入您的建议。

欢迎访问个人博客

欢迎访问小程序:

在这里插入图片描述

转载地址:http://aqhwz.baihongyu.com/

你可能感兴趣的文章
mysql 修改默认字符集为utf8
查看>>
Mysql 共享锁
查看>>
MySQL 内核深度优化
查看>>
mysql 内连接、自然连接、外连接的区别
查看>>
mysql 写入慢优化
查看>>
mysql 分组统计SQL语句
查看>>
Mysql 分页
查看>>
Mysql 分页语句 Limit原理
查看>>
MySql 创建函数 Error Code : 1418
查看>>
MySQL 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
查看>>
mysql 协议的退出命令包及解析
查看>>
mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
查看>>
mysql 四种存储引擎
查看>>
MySQL 基础模块的面试题总结
查看>>
MySQL 备份 Xtrabackup
查看>>