这是一个代码示例。
Vue.component('button-counter', {
template: '<button v-on:click="emit_event">button</button>',
methods: {
emit_event: function () {
this.$emit('change', 'v1', 'v2', 'v3') // Here I emit multiple value
}
},
})
new Vue({
el: '#parent',
data: {
args: ""
},
methods: {
change: function (...args) {
this.args = args
console.log(args)
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.3/vue.common.js"></script>
<div id="parent">
{{ args }} <br />
<button-counter v-on:change="change(1234, $event)"></button-counter>
</div>
从父组件中,我想通过 change() 获取参数传递(在本例中为 1234),还想获取子组件发出的每个值。我尝试使用 \(event 来捕获子发出的值,但是 \)event 仅设置为子发出的第一个值(在此示例中,’v1’)
有没有办法做到这一点?我知道我可以发出一个数组来捕获多个值。但是有些库只是发出多个值。
这是上面示例的代码笔。 https://codepen.io/anon/pen/MmLEqX?editors=1011
原文由 user2925565 发布,翻译遵循 CC BY-SA 4.0 许可协议
定义一个处理程序,该处理程序接受来自事件的多个参数,并将它们传递给除了您的静态参数之外的 change 方法。
或者
并将您的方法更改为