一、定义组件

<template>
<div style="border: 1px solid #ccc">
<Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig"
mode="default" />
<Editor style="height: 500px; overflow-y: hidden;" v-model="valueHtml" :defaultConfig="editorConfig"
mode="default" @onCreated="handleCreated" />
</div>
</template> <script setup>
import { baseURL } from '@/utils/request'
import '@wangeditor/editor/dist/css/style.css' // 引入 css
import { onBeforeUnmount, ref, watch, shallowRef, onMounted, defineModel } from 'vue'
import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
// 编辑器实例,必须用 shallowRef
const editorRef = shallowRef() // 内容 HTML
const valueHtml = ref('<p><br></p>') const model = defineModel()
watch(valueHtml,()=>{
console.log('valueHtml变化了')
model.value = valueHtml.value
}) // 模拟 ajax 异步获取内容
onMounted(() => {
setTimeout(() => {
// 设置内容
valueHtml.value = model.value
}, 100)
}) const toolbarConfig = {}
const editorConfig = {
placeholder: '请输入内容...' ,
MENU_CONF:{
uploadImage:{
// 后端服务地址
server: baseURL+'/api/upload2.php',
// 后端接收文件的字段名 必须与后端保持一致
// 默认字段名 wangeditor-uploaded-image
fieldName: 'wangeditor-uploaded-image'
}
}
} // 组件销毁时,也及时销毁编辑器
onBeforeUnmount(() => {
const editor = editorRef.value
if (editor == null) return
editor.destroy()
}) const handleCreated = (editor) => {
editorRef.value = editor // 记录 editor 实例,重要!
} </script>

二、使用组件

 <wang-editor v-if="dialogVisible" v-model="ruleForm.content">
</wang-editor>

vue3封装王编辑器组件的更多相关文章

  1. vue3 vite2 封装 SVG 图标组件 - 基于 vite 创建 vue3 全家桶项目续篇

    在<基于 vite 创建 vue3 全家桶>一文整合了 Element Plus,并将 Element Plus 中提供的图标进行全局注册,这样可以很方便的延续 Element UI 的风 ...

  2. Vue3 企业级优雅实战 - 组件库框架 - 5 组件库通用工具包

    该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...

  3. 基于jQuery封装的分页组件

    前言: 由于项目需要实现分页效果,上jQuery插件库找了下,但是木有找到自己想要的效果,于是自己封装了个分页组件. 思路: 主要是初始化时基于原型建立的分页模板然后绑定动态事件并实现刷新DOM的分页 ...

  4. 微信小程序封装年月日时分组件

    第一步,在page下新建component文件,放你封装的小组件,和vue里的component差不多 第二步,在需要使用的组件的.json文件中添加usingComponents 第三步,在页面中引 ...

  5. 继续封装个 Volley 组件

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 前面已经封装了很多常用.基础的组件了:base-module, 包括了: crash 处理 常用工具类 apk 升级处理 log 组 ...

  6. AngularJS指令封装高德地图组件

    1 概述 公司移动门户原来是基于AngularJS指令封装的百度地图组件,用于签到.签退.定位等功能,在使用过程中发现百度地图频繁的弹出广告,所以打算重新引用其它地图组件,最后决定基于AngularJ ...

  7. vue封装一些常用组件loading、switch、progress

    vue封装一些常用组件loading.switch.progress github文档https://github.com/zengjielin/vue-component-library loadi ...

  8. 基于jQuery封装的分页组件(可自定义设置)

    jQuery封装的分页组件 前几天做了一个vue的组件分页,而现在需求是jquery的分页,我就根据我自己的需求写了一个.在网上找了很久的基于jquery的分页封装,可是都不是我想要的结果,那么今天我 ...

  9. Vue + Element-ui实现后台管理系统(4)---封装一个ECharts组件的一点思路

    封装一个ECharts组件的一点思路 有关后台管理系统之前写过三遍博客,看这篇之前最好先看下这三篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-system ...

  10. 【小程序】---- 封装Echarts公共组件,遍历图表实现多个饼图

    一.问题描述: 在小程序的项目中,封装公共的饼图组件,并在需要的页面引入使用.要求一个页面中有多个饼图,动态渲染不同的数据. 二.效果实现: 1. 查看——小程序使用Echarts的方式 2. 封装饼 ...

随机推荐

  1. algolia使用配置教程-为SSG静态站增加algolia搜索功能

    要构建SSG静态站点时,一般为了方便增加algolia搜索框,但这里algolia配置使用时用很多的坑,折腾了我好几天,网上没有一个可用的教程. 自己弄了几天,终于搞明白里面的道道了,现在分享出来给大 ...

  2. Spring扩展接口-CommandLineRunner、ApplicationRunner

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  3. 使用HTML完成一个最low的页面

    1 <body> 2 <div style="background: burlywood"> 3 <h1 style="text-align ...

  4. Dify实战案例:AI邮件批量发送器!

    在 Dify 的使用中,有很多很实用并且很好玩的案例,例如今天给大家介绍这个"AI邮件批量发送器". 在没有 Dify 之前,我们要实现邮件的批量发送是件很难的事,不但要写很长的代 ...

  5. 直播预约丨《袋鼠云大数据实操指南》No.3:数据资产管理实操,如何有效进行数据治理

    近年来,新质生产力.数据要素及数据资产入表等新兴概念犹如一股强劲的浪潮,持续冲击并革新着企业数字化转型的观念视野,昭示着一个以数据为核心驱动力的新时代正稳步启幕. 面对这些引领经济转型的新兴概念,为了 ...

  6. 对比下小程序语法和Vue语法异同

    对比之前了解过的Vue,方便加深 了解微信小程序语法. 下面从几个方面介绍Vue和小程序 一,钩子函数 Vue只要跳转新页面就会触发钩子函数,小程序对于不同的页面跳转方式,触发的钩子是不同的. 下面简 ...

  7. dotnet (.Net) Core在不是Web 项目中使用HttpClientFactory正确用法

    在不是web 项目中也不是Api 中使用 HttpClientFactory 先需要添加 Microsoft.Extensions.DependencyInjection.Abstractions M ...

  8. 2025 HarmonyOS 创新赛正式启动,百万大奖等你挑战!

    2025年6月21日-2025年10月底,一年一度的HarmonyOS创新赛正式启幕!现已面向所有开发者开放报名通道. 这是一场鸿蒙生态面向开发者领域的顶级开发赛事,你可以尝试: 1.多种特性,抢先尝 ...

  9. Python库积累之Selenium(二)-Seleniun中的一些问题与解决方法

    常见问题与解决: 1.selenium中出现提示'Your connection is not private'(你的连接不是私密连接) 在Chrome中需要添加忽略认证错误: from seleni ...

  10. 状态机DP

    简介 简单来说就是从一个状态变成另一个状态的路径 感觉还是挺新颖的. 714 https://leetcode-cn.com/problems/best-time-to-buy-and-sell-st ...