vue 自定义事件 direvtive

https://cn.vuejs.org/v2/guide/components-custom-events.html

https://cn.vuejs.org/v2/guide/custom-directive.html

事件名

跟组件和 prop 不同,事件名不存在任何自动化的大小写转换。而是触发的事件名需要完全匹配监听这个事件所用的名称。举个例子,如果触发一个 camelCase 名字的事件:

this.$emit('myEvent')

则监听这个名字的 kebab-case 版本是不会有任何效果的:

<my-component v-on:my-event="doSomething"></my-component>

跟组件和 prop 不同,事件名不会被用作一个 JavaScript 变量名或属性名,所以就没有理由使用 camelCase 或 PascalCase 了。并且 v-on 事件监听器在 DOM 模板中会被自动转换为全小写 (因为 HTML 是大小写不敏感的),所以 v-on:myEvent 将会变成 v-on:myevent——导致 myEvent 不可能被监听到。

因此,我们推荐你始终使用 kebab-case 的事件名

自定义指令:


Vue.direvtive('focus', {
inserted: function (el) {
   el.focus()
}
})


注册局部指令:组件接受directives指令
directives: {
focus: {
inserted: function (el) {
el.focus()
}
}
}


<input v-focus>


猜你喜欢

转载自blog.csdn.net/zgpeterliu/article/details/80363698