您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Vue $emit()為什么不能觸發父組件方法,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
$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()為什么不能觸發父組件方法的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。