Vue3集成wangeditor5
参考连接
https://www.wangeditor.com/v5/for-frame.html#使用-1
效果图
相关依赖
<template> <div> <div style="border: 1px solid #ccc; margin-top: 10px"> <Toolbar :editor="editorRef" :defaultConfig="toolbarConfig" :mode="mode" style="border-bottom: 1px solid #ccc" /> <Editor :defaultConfig="editorConfig" :mode="mode" v-model="valueHtml" style="height: 200px; overflow-y: hidden" @onCreated="handleCreated" @onChange="handleChange" @onDestroyed="handleDestroyed" @onFocus="handleFocus" @onBlur="handleBlur" @customAlert="customAlert" @customPaste="customPaste" /> </div> </div> </template> <script> import '@wangeditor/editor/dist/css/style.css'; import { onBeforeUnmount, ref, shallowRef, onMounted } from 'vue'; import { Editor, Toolbar } from '@wangeditor/editor-for-vue'; export default { components: { Editor, Toolbar }, setup() { // 编辑器实例,必须用 shallowRef,重要! const editorRef = shallowRef(); // 内容 HTML const valueHtml = ref(''); // 模拟 ajax 异步获取内容 onMounted(() => { setTimeout(() => { valueHtml.value = '请输入'; }, 1500); }); const toolbarConfig = {}; const editorConfig = { placeholder: '请输入内容...' }; // 组件销毁时,也及时销毁编辑器,重要! onBeforeUnmount(() => { const editor = editorRef.value; if (editor == null) return; editor.destroy(); }); // 编辑器回调函数 const handleCreated = (editor) => { console.log('created', editor); editorRef.value = editor; // 记录 editor 实例,重要! }; const handleChange = (editor) => { console.log('change:', editor.getHtml()); }; const handleDestroyed = (editor) => { console.log('destroyed', editor); }; const handleFocus = (editor) => { console.log('focus', editor); }; const handleBlur = (editor) => { console.log('blur', editor); }; const customAlert = (info, type) => { alert(`【自定义提示】${type} - ${info}`); }; const customPaste = (editor, event, callback) => { console.log('ClipboardEvent 粘贴事件对象', event); // 自定义插入内容 editor.insertText('xxx'); // 返回值(注意,vue 事件的返回值,不能用 return) callback(false); // 返回 false ,阻止默认粘贴行为 // callback(true) // 返回 true ,继续默认的粘贴行为 }; const insertText = () => { const editor = editorRef.value; if (editor == null) return; editor.insertText('hello world'); }; const printHtml = () => { const editor = editorRef.value; if (editor == null) return; console.log(editor.getHtml()); }; const disable = () => { const editor = editorRef.value; if (editor == null) return; editor.disable() }; return { editorRef, mode: 'default', valueHtml, toolbarConfig, editorConfig, handleCreated, handleChange, handleDestroyed, handleFocus, handleBlur, customAlert, customPaste, insertText, printHtml, disable }; }, }; </script>
学而不思则罔,思而不学则殆!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具