gpt4 book ai didi

javascript - 带有 : not working 的 vuejs 组件事件

转载 作者:行者123 更新时间:2023-11-30 20:38:47 25 4
gpt4 key购买 nike

我有一个 vuejs 组件,在我的组件的一个方法中,我正在分派(dispatch)这样一个事件:

this.$emit('user:registerd', [user])

在父节点上,我尝试使用

捕获它
<user v-on:user:registered="showSuccess"> </user>

但是上面从不运行 showSuccess 方法。如果我从 emit 和 v-on 中省略 : 部分,一切正常。我认为可以使用 : 以某种方式在组件中使用它。

有谁知道为什么这不起作用?

最佳答案

如果你发射:

this.$emit('user:registerd', [user])

收听:

<user v-on:user:registerd="showSuccess"> </user>


OTOH,如果你想听:

<user v-on:user:registered="showSuccess"> </user>

你应该像这样发出:

this.$emit('user:registered', [user])

请记住,您正在将一个单元素数组发送到处理程序函数中。


小演示:

Vue.component('child', {
template: `<button @click="$emit('user:registered', [123])">CLICK ME TO EMIT EVENT</button>`
})
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
},
methods: {
showSuccess(e) {
this.message = 'Success. Received: ' + JSON.stringify(e);
}
}
})
<script src="https://unpkg.com/vue"></script>

<div id="app">
<p>{{ message }}</p>
<child @user:registered="showSuccess"></child>
</div>

关于javascript - 带有 : not working 的 vuejs 组件事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49513212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com