vue 使用 wangeditor 富文本编辑器

news2024/11/19 0:45:54

wangeditor 是一个轻量级 web 富文本编辑器,配置方便,使用简单。

1)安装 wangeditor

终端安装 wangeditor 库:

yarn add @wangeditor/editor
# 或者 npm install @wangeditor/editor --save

2)页面绑定

创建一个 xxx.vue 页面,在 div 上设置 id

<template>  
  <div>
      <div id="editor" style="background: #ffffff;"></div>
  </div>
</template>  

3)页面引入

xxx.vue 页面 引入wangeditor

import E from 'wangeditor'

4)配置wangeditor的配置项

在生命周期 mounted 里配置wangeditor 的配置项:

  mounted () {
    this.initialEditor()
  },
  methods: {
    initialEditor () {
      // 绑定div上的 editor
      this.editor = new E('#editor')
      // 获取输入的内容
      this.editor.config.onchange = html => {
        this.form.content = html;
      };
      // 上传图片到服务器
      this.editor.config.customUploadImg = (files, insertImgFn) => {
      // files 是 input 中选中的文件列表
      // insertImgFn 是获取图片 url 后,插入到编辑器的方法
      // 上传代码返回结果之后,将图片插入到编辑器中
      const params = new FormData();
      params.append("file", files[0]);
      this.$http({
        url: this.uploadUrl,
        method: "post",
        data: params
      }).then(res => {
        if (res.url) {
          // 上传图片,返回结果,将图片插入到编辑器中
          insertImgFn(res.url);
        }
      })
      }
      
      // 上传图片到服务器,是否以base64形式
      this.editor.config.uploadImgShowBase64 = false
      this.editor.config.pasteFilterStyle = false
      this.editor.config.zIndex = 100
      this.editor.config.colors = ['#ffffff', '#000000', '#eeece1', '#1c497d', '#4d80bf', '#4f81bd', '#c0504d', '#9bbb59', '#8064a2', '#4bacc6', '#f79646', "#c00000", '#ff0000', '#ffc000', '#ffff00', '#92d050', '#00b050', '#00b0f0', '#0070c0', '#002060', '#7030a0']
      // 创建一个富文本编辑器
      this.editor.create();
    }
}

5)完整代码

xxx.vue 完整代码:

<template>  
  <div>
      <div id="editor" style="background: #ffffff;"></div>
  </div>
</template>  
<script>
import E from 'wangeditor'
export default {
  name: 'test',
  data () {
    return {
      form: { content: '' },
      baseURI: 'xxx',
      uploadUrl: `${baseURI}/upload?token=xxx`,
    }
  },
    mounted () {
    this.initialEditor()
  },
  methods: {
    initialEditor () {
      // 绑定div上的 editor
      this.editor = new E('#editor')
      // 获取输入的内容
      this.editor.config.onchange = html => {
        this.form.content = html;
      };
      // 上传图片到服务器
      this.editor.config.customUploadImg = (files, insertImgFn) => {
      // files 是 input 中选中的文件列表
      // insertImgFn 是获取图片 url 后,插入到编辑器的方法
      // 上传代码返回结果之后,将图片插入到编辑器中
      const params = new FormData();
      params.append("file", files[0]);
      this.$http({
        url: this.uploadUrl,
        method: "post",
        data: params
      }).then(res => {
        if (res.url) {
          // 上传图片,返回结果,将图片插入到编辑器中
          insertImgFn(res.url);
        }
      })
      }
      
      // 上传图片到服务器,是否以base64形式
      this.editor.config.uploadImgShowBase64 = false
      this.editor.config.pasteFilterStyle = false
      this.editor.config.zIndex = 100
      this.editor.config.colors = ['#ffffff', '#000000', '#eeece1', '#1c497d', '#4d80bf', '#4f81bd', '#c0504d', '#9bbb59', '#8064a2', '#4bacc6', '#f79646', "#c00000", '#ff0000', '#ffc000', '#ffff00', '#92d050', '#00b050', '#00b0f0', '#0070c0', '#002060', '#7030a0'],
      // 配置菜单
      this.editor.config.menus = [
        "head", // 标题
        "bold", // 粗体
        "fontSize", // 字号
        "fontName", // 字体
        "lineHeight", // 行高
        "italic", // 斜体
        "underline", // 下划线
        "strikeThrough", // 删除线
        "foreColor", // 文字颜色
        "backColor", // 背景颜色
        "link", // 插入链接
        "list", // 列表
        "justify", // 对齐方式
        "quote", // 引用
        "emoticon", // 表情
        "image", // 插入图片
        "table", // 表格
        "video", // 插入视频
        "code", // 插入代码
        "undo", // 撤销
        "redo", // 重复
        "fullscreen" // 全屏
      ]
      // 富文本内容
      this.editor.txt.html()
      // 创建一个富文本编辑器
      this.editor.create();
    }
  },
  beforeDestroy() {
    let editor = this.editor
    if (editor == null) return
    // 调用销毁 API,组件销毁时,及时销毁 editor ,重要!!!
    editor.destroy()
    editor = null
  }
}
</script>

页面效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/191836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

unity 关于UV坐标算点 和 PerlinNoise(柏林噪声)

生成相关效果代码如下&#xff1a; public int w 100;public int h 100;public Texture2D texture;public Image image;public Color tu Color.yellow;public Color cao Color.green;// Start is called before the first frame updatevoid Start(){texture new Texture2D…

剑指 Offer II 007. 数组中和为 0 的三个数

题目链接 剑指 Offer II 007. 数组中和为 0 的三个数 mid 题目描述 给你一个整数数组 nums&#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]]满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0。 请你返回所有和为 0 且不重复的三…

软件测试岗位会消失么

只要互联网还在发展&#xff0c;软件测试岗位就一直被需要&#xff01; 软件测试已经不再只是点点点了&#xff0c;如果只停留在点点点&#xff0c;那么有可能会消失&#xff0c;但是现在测试已经向自动化测试方向发展了 人生如逆水行舟&#xff0c;不进则退。于其浪费时间的…

Golang GC垃圾回收机制理解记录

一、概念对不再使用的是内存资源进行自动回收的功能就叫垃圾回收&#xff08;GC: Garbage Collection&#xff09;二、为什么要有垃圾回收&#xff1f;编程语言需要对内存手动释放&#xff0c;操作繁琐&#xff0c;处理不好会出现内存泄漏&#xff0c;垃圾回收出现使的开发者能…

入门力扣自学笔记234 C++ (题目编号:2325)

2325. 解密消息 题目&#xff1a; 给你字符串 key 和 message &#xff0c;分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下&#xff1a; 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。 将替换表与普通英文字母表对齐&#xff0c…

ESP32设备驱动-PCF8591数据采集驱动

PCF8591数据采集驱动 1、PCF8591介绍 PCF8591 是一款单片集成、独立电源、低功耗、8 位 CMOS 数据采集设备。 PCF8591 具有四个模拟输入、一个模拟输出和一个串行 I2C 总线接口。 PCF8591 的三个地址引脚 A0、A1 和 A2 可用于硬件地址编程 8 PCF8591 器件允许访问相同的 I2C…

dig命令命令常见用法

dig命令命令常见用法域名结构dig命令命令常见用法安装dig查看本机使用的dns地址使用dot或doh查询域名解析查询A记录查询dns所有记录值any从ip地址反查询域名dig -x检查txt记录是否生效查看DNS是否开启AXFR协议全量区传输功能dig诊断DNS污染只显示域名的解析ip递归解析dig trace…

全球13台 DNS 根服务器,居然没有一台属于中国!

域名系统是最重要的互联网服务之一&#xff0c;没有它&#xff0c;我们将无法访问在线内容&#xff0c;甚至无法发送电子邮件。每当我们尝试连接到其他网站或在线服务时&#xff0c;根 DNS 服务器都会帮助我们的计算机找到并到达我们想要的地址。 DNS 根服务器是所有 DNS 的组…

MySQL-JDBC反序列化分析

0x01 前言 听师傅们说这条链子用的比较广泛&#xff0c;所以最近学一学&#xff0c;本来是想配合着 tabby 或是 codeql 一起看的&#xff0c;但是 tabby 的环境搭建一直有问题&#xff0c;耽误了很久时间&#xff0c;所以就直接看了 0x02 JDBC 的基础 本来不太想写这点基础的…

LaTeX使用enumitem包切换enumerate标签样式

一、直接使用enumerate 源码&#xff1a; \documentclass{article} \begin{document} \section{LaTeX Style Sample} There is nothing to show, thank you for reading. \begin{enumerate}\item Apple is a kind of fruit.\item Cat is a kind of animal.\item Butterfly is …

git commit之后,回退撤销commit

在commit之后&#xff0c;发现有不需要提交的文件被提交上去了&#xff0c;好在还没有push到远端&#xff0c;需要撤回重新提交。如果是用的是Sourcetree的话,打开Sourcetree操作如下&#xff1a;找到提交之前的版本的记录右键这条提交记录&#xff0c;点击 将xxx重置到这次提交…

Ventoy安装deepin系统(windows和deepin双系统)

目录电脑安装虚拟机安装双系统安装&#xff08;windows和deepin&#xff09;美化deepin系统引导页其他链接电脑安装 我们先制作好Ventoy启动盘&#xff0c;然后插入电脑使用U盘启动 deepin系统镜像下载地址 windows系统镜像下载地址 windows激活软件 ,密码:ev5k windows镜像下载…

Maven实战-1.maven命令

前言 持续更新中… Maven命令 1.mvn help:system 打印出java所有的系统属性和环境变量。 2.mvn clean compile clean告诉Maven清理输出目录target/&#xff0c;compile告诉Maven编译项目的主代码&#xff08;src/main/java目录下&#xff09;。 不要问为什么只是编译了项…

Hive的Rank排名(rank函数,dense_rank函数,row_numer函数)

一、区别&#xff1a;三者通常都会配合窗口函数over()&#xff0c;并结合partition by order by xxx来分组排序&#xff0c;即形式使用&#xff1a;function_name over(partition by xxx order by xxx)。首先三者都是产生一个自增序列&#xff0c;不同的是row_number() 排序的字…

2023年SAT、ACT、AP、Alevel、IB考试时间表

2023年已经来临&#xff01;以下是2023年SAT、ACT、AP、A-Level、IB考试时间安排&#xff0c;早规划早备考&#xff0c;建议大家收藏&#xff01;2023 SAT从2023年开始&#xff0c;美国以外的所有SAT考试都将转为机考&#xff0c;美国SAT考试将在2024年全面转为机考。2023年一共…

前端Vue中实现超炫酷动态背景(全屏背景+自定义banner+登录/注册页)

一、文章引导 #mermaid-svg-9sKRaMRBkdCcbAh2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-9sKRaMRBkdCcbAh2 .error-icon{fill:#552222;}#mermaid-svg-9sKRaMRBkdCcbAh2 .error-text{fill:#552222;stroke:#55222…

29相似矩阵和若尔当型

一、知识概要 本节从正定矩阵的回顾谈起&#xff0c;介绍了相似矩阵和若尔当型。但是没有进行深入介绍&#xff0c;主要目的是让我们对这些变换方式有所了解。 二、正定矩阵补充 在上一节学习的正定矩阵的基础上&#xff0c;我们给出以下问题&#xff1a; &#xff08;1&…

2023年2月北京/广州/西安/深圳DAMA-CDGA/CDGP数据治理认证招生简章

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

uniapp:常用跨端业务组件

插件内组件包含以下功能&#xff1a; 自定义状态栏组件(ZoNavBar)上拉加载状态组件(ZoLoading)弹窗组件(ZoPopup)搜索组件(ZoSearchBar)空数据组件(ZoEmpty)tab标签组件(ZoTabs)tab下拉筛选组件(ZoSelectTabs)底部导航组件(ZoTabBar)cell导航组件(ZoCell) 10.标题内容组件(ZoT…

复试--数据结构篇[1-4章]

目录第一章 绪论第二章 线性表1-线性表的顺序表示&#xff08;顺序表&#xff09;2-线性表的链式表示&#xff08;链表&#xff09;&#xff08;1&#xff09;单链表&#xff08;2&#xff09;循环链表&#xff08;3&#xff09;双向链表3-顺序表和链表的比较4-线性表的应用第三…