猿问

vue 子组件emit没效果各位有什么建议?

请问下为啥在模板里,子组件调用this.$emit,父组件触发不了方法呢?我debugger看events里注册了那个事件然而并没有触发是为啥勒
https://jsfiddle.net/BiggerKa...
点击点我啊没有出现alert的效果
温温酱
浏览 491回答 2
2回答

守候你守候我

事件名称不允许用驼峰式,fiddle里看不出来,在浏览器里Vue会发出警告中断执行,模板和触发的方法名称都改成小写就可以成功,亲测可行。//template//scriptmethods:{handleTip:function(){this.$emit('handle-tip','haha')}}

qq_遁去的一_1

事件名不同于组件和prop,事件名不存在任何自动化的大小写转换。而是触发的事件名需要完全匹配监听这个事件所用的名称。举个例子,如果触发一个camelCase名字的事件:this.$emit('myEvent')则监听这个名字的kebab-case版本是不会有任何效果的:不同于组件和prop,事件名不会被用作一个JavaScript变量名或属性名,所以就没有理由使用camelCase或PascalCase了。并且v-on事件监听器在DOM模板中会被自动转换为全小写(因为HTML是大小写不敏感的),所以v-on:myEvent将会变成v-on:myevent——导致myEvent不可能被监听到。因此,我们推荐你始终使用kebab-case的事件名。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答