首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Vue 2和JSX绑定自定义事件

使用Vue 2和JSX绑定自定义事件
EN

Stack Overflow用户
提问于 2017-05-01 21:39:59
回答 2查看 4.2K关注 0票数 7

我想在根标签上绑定自定义事件,而不是在mounted()中绑定它。因此,我尝试使用以下代码:

代码语言:javascript
复制
render (h) {
  return (
    <div on-custom-event={this.handleCustomEvent}></div>
  )
}

但是当我在Chrome上运行它时,我发现custom-event绑定到了不能使用$emit触发的DOM,但是使用VueJS 2的模板语法很容易做到:

代码语言:javascript
复制
<template>
   <div @custom-event="handleCustomEvent"></div>
</template>

请帮我解决这个问题,谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-09-10 23:56:28

开派对有点晚了但是..。

要触发事件,您需要执行以下操作:

代码语言:javascript
复制
protected render(h: any) {
    return (
        <a onClick={(e: any) => this.$emit('test')}>
            {this.$slots.default}
        </a>
    );
}

要收听事件,请执行以下操作:

代码语言:javascript
复制
protected render(h: any) {
    return (
        <NavLink onTest={() => alert('clicked')}>
            <i class='fa fa-bars'></i>
        </NavLink>
    );
}
票数 7
EN

Stack Overflow用户

发布于 2017-05-01 22:22:49

根据the docs中的示例,JSX事件处理程序应该是驼峰式大小写,而不是kebab大小写,因此尝试如下所示:

代码语言:javascript
复制
render (h) {
  return (
    <div onCustomEvent={this.handleCustomEvent}></div>,
  )
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43720060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档