uniapp父子双向传数组
时间: 2023-08-05 11:04:23 浏览: 76
在Uniapp中,可以使用props和$emit来实现父子组件之间的双向传数组。
首先,在父组件中定义一个数组,并将其作为props传递给子组件:
```html
<template>
<div>
<child :list="list" @updateList="updateList"></child>
</div>
</template>
<script>
import child from './child.vue';
export default {
components: {
child
},
data() {
return {
list: [1, 2, 3]
}
},
methods: {
updateList(value) {
this.list = value;
}
}
}
</script>
```
在子组件中,接收props,同时在需要修改数组时通过$emit触发自定义事件,将修改后的数组传递给父组件:
```html
<template>
<div>
<ul>
<li v-for="(item, index) in list" :key="index">{{ item }}</li>
</ul>
<button @click="updateList">update list</button>
</div>
</template>
<script>
export default {
props: {
list: {
type: Array,
default: []
}
},
methods: {
updateList() {
const newList = [...this.list];
newList.push(4);
this.$emit('updateList', newList);
}
}
}
</script>
```
这样,父组件中的list数组就会被修改为新的数组。同时,如果在子组件中对list数组进行修改,也会影响到父组件中的list数组。这就实现了父子组件之间的双向传数组。
阅读全文