wangEditor富文本编辑器在vue中的应用

本文详细介绍如何在Vue项目中集成并使用wangEditor富文本编辑器,包括代码实例与关键配置,如上传图片、Base64编码存储及自定义按钮等。

wangEditor富文本编辑器在vue中的应用

代码实例:

<template>
  <div class="editor-tool">
    <a-button class="btn" v-on:click="getContent">保存</a-button>
    <div ref="editor" style="text-align: left;"></div>
  </div>
</template>

<script>
import E from "wangeditor";

export default {
  name: "editor",
  props: {
    content: {
      type: String,
    },
  },
  data() {
    return {
      editorContent: "",
    };
  },
  methods: {
    getContent: function() {
      this.$emit("Edit", this.editorContent);
    },
  },
  watch: {
    content: function(newVal) {
      this.editorContent = newVal;
    },
  },
  mounted() {
    var editor = new E(this.$refs.editor);
    editor.customConfig.onchange = (html) => {
      this.editorContent = html;
    };
    //进入debug状态
    editor.customConfig.debug = true;
    //删除黏贴文件的样式
    editor.customConfig.pasteFilterStyle = false;
	//用Base64存图
    editor.customConfig.uploadImgShowBase64 = true;
    //忽略黏贴文件的图片
    editor.customConfig.pasteIgnoreImg = true;

    // 配置服务器端地址 upload:上传图片地址
    editor.customConfig.uploadImgServer = "/upload";
	
    editor.customConfig.customUploadImg = function(files, insert) {
      console.log(files, insert);
      var objectURL = URL.createObjectURL(files[0]);
      // 上传代码返回结果之后,将图片插入到编辑器中
      insert(objectURL);
    };

    clearTimeout(this.timer);
    this.timer = setTimeout(() => {
      //设置延迟执行
      editor.create();
      editor.txt.html(this.editorContent);
    }, 500);//延时获取编辑器内容
  },
};
</script>



### 如何在 Vue 中集成与使用 WangEditor 富文本编辑器 #### 安装依赖 为了在 Vue 项目中使用 WangEditor,首先需要安装其 npm 包。可以通过运行以下命令完成安装[^1]。 ```bash npm install wangeditor --save ``` #### 配置富文本编辑器 创建一个新的 Vue 组件并引入 `wangeditor` 的核心库。通过初始化编辑器实例并将其实例绑定到 DOM 节点上,可以实现基本的功能配置。 以下是完整的代码示例: ```vue <template> <div class="editor-container"> <!-- 编辑器容器 --> <div ref="editorElem" style="text-align:left;"></div> <button @click="submitContent">提交</button> </div> </template> <script> import E from 'wangeditor'; export default { name: "RichTextEditor", data() { return { editor: null, content: '' }; }, mounted() { this.initEditor(); }, beforeDestroy() { // 销毁编辑器实例以防止内存泄漏 if (this.editor) { this.editor.destroy(); this.editor = null; } }, methods: { initEditor() { const editor = new E(this.$refs.editorElem); // 工具栏配置 editor.config.menus = [ 'head', // 标题 'bold', // 粗体 'italic', // 斜体 'underline' // 下划线 ]; // 自定义上传图片接口 editor.config.uploadImgServer = '/upload'; editor.create(); this.editor = editor; // 将编辑器实例保存至组件数据中 }, submitContent() { this.content = this.editor.txt.html(); // 获取 HTML 内容 console.log('当前内容:', this.content); // 输出内容供调试 } } }; </script> <style scoped> .editor-container { margin-top: 20px; } </style> ``` 上述代码实现了以下几个功能: - 初始化了一个简单的富文本编辑器,并绑定了指定的菜单项。 - 提供了自定义上传图片的能力,需替换 `/upload` 为实际服务器端 API 地址。 - 添加了按钮用于获取编辑器中的内容并打印到控制台。 #### 处理内存泄漏 当组件被卸载时,务必调用编辑器的 `destroy()` 方法释放资源,从而避免潜在的内存泄漏问题。 --- ### 使用场景说明 富文本编辑器广泛应用于论坛、博客以及其他需要支持图文混排的内容管理系统中。借助 WangEditor 可轻松实现这些需求,并提供良好的用户体验[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值