时间:2021-05-26
$emit传入的事件名称只能使用小写,不能使用大写的驼峰规则命名
如果修改后还是不行的话,就改用:
this.$parent.Event (Event为父组件中的自定义方法)
补充知识:Vue.js 使用 $emit 触发事件填坑
vue的组件内触发外部事件不起作用
vue的组件内触发自定义事件(发外部事件)不起作用
今天学习vue的自定义组件功能,在组件内部触发一个事件,在使用组件的地方使用v-on绑定这个事件,然而触发一直不生效,检查了很多遍的代码都没看出什么问题,代码如下:
<div id="app"> <button v-on:click="IncrHandle">增加</button> <input v-model="total" placeholder="请输入内容" /> <child v-bind:count="total" v-on:onIncr="IncrHandle"></child></div>Vue.component("child",{ props:['count'], template:"<button v-on:click='incr'>增加{{count}}</button>", data: function(){ return { count: 0 } }, methods:{ incr: function(){ this.$emit('onIncr') this.count += 1 } }})new Vue({ el:"#app", data:{ total: 0 }, methods:{ IncrHandle:function(){ this.total += 1 total("增加1") }, DncrHandle:function(){ this.total -= 1 } }})经过无数的验证,终于找到了解决办法:
保证待传递的事件名称为纯小写。不可以使用驼峰j格式。
即:
将v-on:onIncr改为v-on:onincr,将this.emit(′onIncr′)改为this.emit('onIncr')改为this.emit( ′ onIncr ′ )
改为this.emit(‘onincr')
以上这篇Vue $emit()不能触发父组件方法的原因及解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
之前在用vue写子父组件通信的时候,老是遇到问题!!!子组件传值给父组件: 子组件:通过emit方法给父组件传值,这里的upparent是父组件要定义的方法
思路:父组件通过props传值给子组件,子组件通过$emit来通知父组件修改相应的props值,具体实现如下:importVuefrom'vue'constco
代码如下所示:提交子组件向父组件传递数据使用this.$emit('delete',this.index)该方法Vue.component('todo-item
本文介绍了vue.js$refs和$emit父子组件交互的方法,分享给大家,废话不多说直接看代码:父调子$refs(把父组件的数据传给子组件)//hello组件
1.vue中各个组件之间传值1.父子组件父组件–>子组件,通过子组件的自定义属性:props子组件–>父组件,通过自定义事件:this.emit(′事件名′,参