这是一个代码示例。
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()获取参数pass(在本例中,1234),但也要获取子组件发出的每个值。我尝试使用$event来捕获子组件发出的值,但$event仅设置为子组件发出的第一个值(在本例中为int,'v1')
有什么方法可以做到这一点吗?我知道我可以发出一个数组来捕获多个值。但有些库只是发出多个值。
这是上面例子的codepen。https://codepen.io/anon/pen/MmLEqX?editors=1011
3条答案
按热度按时间k97glaaz1#
定义一个处理程序,它接受来自事件的多个参数,并将它们连同静态参数一起传递给change方法。
或者
然后把你的方法改成
e0uiprwp2#
可以使用解构语法
你可以像这样访问这些值
xwbd5t1u3#
我会这样做: