wangeditor5 在vue中自定义扩展按钮

官网传送门:

代码实现方式:

    <Toolbar
      style="border-bottom: 1px solid #ccc"
      :editor="editor"
      :defaultConfig="toolbarConfig"
      :mode="mode"
    />
    <Editor
      style="height: 300px"
      v-model="html"
      :defaultConfig="editorConfig"
      :mode="mode"
      @onCreated="onCreated"
      @onChange="onChange"
      @onDestroyed="onDestroyed"
      @onMaxLength="onMaxLength"
      @onFocus="onFocus"
      @onBlur="onBlur"
      @customAlert="customAlert"
      @customPaste="customPaste"
    />

js:
import { Editor, Toolbar  } from "@wangeditor/editor-for-vue";
import { Boot } from '@wangeditor/editor'

class MyButtonMenu { 
    constructor(vueInstance) {
        this.vueInstance = vueInstance;
        this.title = '编辑源代码' // 自定义菜单标题
        this.iconSvg = '<svg></svg>' // 可选 菜单图标
        this.tag = 'button'
    }

    // 获取菜单执行时的 value ,用不到则返回空 字符串或 false
    getValue(editor) {                              // JS 语法
    }

    // 菜单是否需要激活(如选中加粗文本,“加粗”菜单会激活),用不到则返回 false
    isActive(editor) {                    // JS 语法
        return false
    }

    // 菜单是否需要禁用(如选中 H1 ,“引用”菜单被禁用),用不到则返回 false
    isDisabled(editor) {                     // JS 语法
        return false
    }

    // 点击菜单时触发的函数
    exec(editor, value) {                           // JS 语法
        if (this.isDisabled(editor)) return
        this.vueInstance.editHTML()
    }
}

因为我这里要用vue定义的method
所以我在created周期的时候注册按钮
data() {
	return {
		      toolbarConfig: {
		        insertKeys: {
		          idnex: 0,
		          keys: ['editCode']
        	    }
              }
	}
}
created() {
   	 let that = this
        const menu1Conf = {
	      key: 'editCode', // 定义 menu key :要保证唯一、不重复(重要)
	      factory() {
	        return new MyButtonMenu(that)
	      },
	    }
   	 Boot.registerMenu(menu1Conf)
}

到这里配置好了按钮已经加上去了
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Vue自定义指令是一种能够扩展已有的HTML元素或者Vue组件的功能的方式。你可以使用自定义指令来直接操作DOM、添加事件监听器、应用动画效果等。 要创建一个自定义指令,你可以使用Vue实例的`directive`方法。下面是一个简单的例子,演示如何创建一个自定义的`highlight`指令: ```javascript // 在Vue实例注册自定义指令 Vue.directive('highlight', { bind: function (el, binding) { // 指令绑定时的处理逻辑 el.style.backgroundColor = binding.value; }, update: function (el, binding) { // 指令更新时的处理逻辑 el.style.backgroundColor = binding.value; } }); ``` 在上面的例子,我们创建了一个名为`highlight`的自定义指令。这个指令具有两个生命周期钩子函数:`bind`和`update`。当指令被绑定到元素上时,`bind`函数会被调用,可以在这里执行一些初始化操作。当指令所在的组件重新渲染时,`update`函数会被调用,可以在这里对指令进行更新。 使用自定义指令时,你可以在模板通过`v-highlight`来调用它,并传递参数。例如,在下面的代码,我们将背景色设置为红色: ```html <div v-highlight="'red'">这是一个示例</div> ``` 这只是自定义指令的基本用法,你可以根据需要在`bind`和`update`函数添加更多的逻辑来实现更复杂的功能。同时,Vue还提供了其它一些钩子函数和指令修饰符,你可以根据需要进行学习和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值