vue3 wangeditor 自定义菜单
时间: 2025-02-10 20:08:16 浏览: 61
Vue3 中自定义 Wangeditor 菜单的方法
在 Vue3 项目中集成并自定义 wangeditor
的菜单项可以通过创建自定义组件来完成。具体来说,可以利用官方提供的 API 和插件机制实现这一目标。
创建 SelectMenu 组件
为了向编辑器添加新的下拉选项卡(即 SelectMenu),需要继承 EditorMenu 类,并重写对应的生命周期函数:
import { Menu, editorConfig } from '@wangeditor/editor'
class MySelectMenu extends Menu {
constructor(editor) {
super(editor);
this.$elem = null;
}
// 获取菜单配置
getMenuItemConf() {
return {
key: 'my-select-menu',
title: '我的选择菜单', // 提示文字
iconSvg: '<svg>...</svg>', // 图标 SVG 字符串
}
}
// 渲染 DOM 结构
createContentElem() {
const div = document.createElement('div');
div.innerHTML = `<ul>
<li data-value="option1">选项一</li>
<li data-value="option2">选项二</li>
</ul>`;
this.$elem = div.firstChild;
// 添加点击事件监听器
Array.from(this.$elem.children).forEach((item) => {
item.addEventListener('click', () => {
console.log(item.getAttribute('data-value'));
this.editor.command.customInsertText(`选择了 ${item.textContent}`);
});
});
return this.$elem;
}
}
上述代码展示了如何通过 JavaScript 实现一个简单的 SelectMenu[^1]。
注册自定义菜单至编辑器实例
为了让自定义的菜单生效,在初始化编辑器时需将其注册进去:
// 导入必要的模块
import WangEditor from "@wangeditor/editor-for-vue";
import MySelectMenu from './path/to/MySelectMenu';
export default defineComponent({
components: { WangEditor },
setup() {
onMounted(() => {
// 初始化编辑器前先加载自定义菜单类
window['$editor'].config.MENU_CONF['custom'] = true;
window['$editor'].registerMenu(MySelectMenu);
// 配置其他参数...
// 初始化富文本编辑器
const editor = createEditor({
selector: '#editor-container',
config: {},
mode: "default"
})
})
return {};
}
});
这段脚本说明了怎样把之前编写的 MySelectMenu
加载到实际使用的编辑器环境中去。
完整案例展示
下面给出完整的 HTML 文件结构作为参考,其中包含了引入样式表、挂载点设置等内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>VUE3-WANGEDITOR DEMO</title>
<!-- 引入 CSS -->
<link rel="stylesheet" href="@wangeditor/editor/dist/css/style.css"/>
<style scoped>
/* 自定义样式 */
#wrapper{
width:70%;
margin:auto;
}
#editor-container{
min-height:40vh;
border:solid 1px #ccc;
}
</style>
</head>
<body>
<div id="app">
<!-- 编辑区容器 -->
<wang-editor v-model:value="content"></wang-editor>
<!-- 其他页面元素... -->
</div>
<script src="./main.js"></script>
</body>
</html>
以上就是关于在 Vue3 应用程序里定制化 wangeditor
工具条的具体做法。
相关推荐



















