vue v-on="on" 绑定一个对象里面怎么添加原生事件, 修饰符?

这个是内部的子组件, 外部是传递的一个对象
通过v-on绑定的对象, 看官网显示 绑定对象是不支持修饰符的,native也不支持.
有没有大佬知道。

阅读 4.1k
3 个回答

官网的例子

<!-- 对象语法 (2.4.0+) -->
<button v-on="{ mousedown: doThis, mouseup: doThat }"></button>

等价于

<button @mousedown="doThis" @mouseup="doThat"></button>

改一下就可以加修饰符了,没必要非得用对象语法@mousedown.native="doThis"

总感觉你的问题很怪,首先我猜测是用的手写渲染函数,看到你这句

看官网显示 绑定对象是不支持修饰符的

我猜你是想向组件传递一个@click原生事件
比如你有个child组件,在template表现为

<Child @click.native="obj">

现在你是手写render所以你在考虑这个

{
    render(h) {
        return h(Child, { nativeOn: obj });
    }
}

事件怎么能传递obj?不应该是一个method么?
**我认为你是需要在nativeOn中传递一个方法。
所以应该是这样的**

{
    method: {
        handleObj() {
        }
    },
    render(h) {
        return h(Child, { nativeOn: { click: this.handleObj } });
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题