vue3中父子组件传值,传递数组,如何拿到数组的值
时间: 2024-09-25 15:14:13 浏览: 49
在Vue3中,父子组件之间传递数组可以采用props或者自定义事件的方式。以下是两种常见的做法:
1. **通过Props** (属性)传递:
- 父组件将需要传递的数组作为prop传递给子组件:
```html
<template>
<child-component :array="parentArray" />
</template>
// 父组件数据
data() {
return {
parentArray: ['value1', 'value2', 'value3']
}
}
```
- 子组件接收并访问这个数组:
```javascript
setup(props) {
const array = props.array; // 访问到父组件传递过来的数组
// 在这里处理数组数据...
}
```
2. **通过自定义事件** (emit)传递:
- 父组件调用子组件的方法,并传递数组:
```html
<button @click="passArrayToChild">Pass Array</button>
<script>
methods: {
passArrayToChild() {
this.$emit('updateArray', ['newValue1', 'newValue2']);
}
}
</script>
```
- 子组件监听这个事件并更新:
```javascript
emits(['updateArray']); // 明确声明会触发这个事件
async mounted() {
this.$on('updateArray', (array) => {
// 更新数组并在子组件内部使用...
});
}
```
无论哪种方法,记得在父子组件间使用`ref`或者其他响应式机制处理数组元素的变化,以便实时同步。
阅读全文