wangEditor如何获取toolbar实例

更新时间: 2025-12-03 14:34:03

# 安装依赖

npm install @wangeditor/editor --save
npm install @wangeditor/editor-for-vue --save

# 使用

<template>
    <div style="border: 1px solid #ccc;">
        <Toolbar
            style="border-bottom: 1px solid #ccc"
            :editor="editor"
            :defaultConfig="toolbarConfig"
            :mode="mode"
        />
        <Editor
            style="height: 500px; overflow-y: hidden;"
            v-model="html"
            :defaultConfig="editorConfig"
            :mode="mode"
            @onCreated="onCreated"
        />
    </div>
</template>

<script>
  import Vue from 'vue'
  import { DomEditor } from '@wangeditor/editor'
    import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
    import "@wangeditor/editor/dist/css/style.css"

  export default Vue.extend({
    components: { Editor, Toolbar },
    data() {
      return {
        toolbar:null,
        editor: null,
        html: '<p>hello</p>',
        toolbarConfig: {},
        editorConfig: { placeholder: '请输入内容...' },
        mode: 'default', // or 'simple'
      }
    },
    methods: {
      onCreated(editor) {
        this.editor = Object.seal(editor) // 一定要用 Object.seal() ,否则会报错
        console.log(this.editor.getAllMenuKeys())
        this.$nextTick(() => {
            //一定要用 this.$nextTick包裹起来,等editor实例创建好之后才能获取到toolbar实例
            this.toolbar = DomEditor.getToolbar(this.editor);
            this.toolbar.getConfig().toolbarKeys //可以查看当前的默认配置
            this.editor.getAllMenuKeys()//查询编辑器注册的所有菜单 key
            console.log(this.toolbar.getConfig().toolbarKeys)
        });
      },
    },
    mounted() {
      // 模拟 ajax 请求,异步渲染编辑器
      setTimeout(() => {
        this.html = '<p>模拟 Ajax 异步设置内容 HTML</p>'
      }, 1500)
    },
    beforeDestroy() {
      const editor = this.editor
      if (editor == null) return
      editor.destroy() // 组件销毁时,及时销毁编辑器
    },
  })
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62