javascript - 使用 Vue 2 和 JSX 绑定(bind)自定义事件

标签 javascript vue.js vuejs2

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

render (h) {
  return (
    <div on-custom-event={this.handleCustomEvent}></div>
  )
}

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

<template>
   <div @custom-event="handleCustomEvent"></div>
</template>

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

最佳答案

派对有点晚了,但是......

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

protected render(h: any) {
    return (
        <a onClick={(e: any) => this.$emit('test')}>
            {this.$slots.default}
        </a>
    );
}

监听事件:

protected render(h: any) {
    return (
        <NavLink onTest={() => alert('clicked')}>
            <i class='fa fa-bars'></i>
        </NavLink>
    );
}

关于javascript - 使用 Vue 2 和 JSX 绑定(bind)自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43720060/

相关文章:

vue.js - Vuejs - vuex 延迟加载

javascript - 侧滑菜单选项卡

javascript - firebug 没有显示完整的 js 文件来调试、放置 breka 点

javascript - Node.js 和 MongoDB (mongoose) 中的登录表单

javascript - VueJS如何用emit代替dispatch

vue.js - Vue项目无法解析 '@'

vue.js - Vue插件中如何调用mounted或者created?

javascript - MySql 错误 "could not update record"错误号 0 - 当没有更改记录时

javascript - 通过给定的浏览器 URL 在启动时重定向

javascript - "watch"Vuex模块有可能吗?