在Vue 3中,子组件在挂载时就会立即响应父组件传递过来的props的初始值。这是因为Vue 3使用了基于Proxy的响应式系统,它能够实时地跟踪对象的变化,从而使得子组件能够及时获取到更新后的props的值。
例如,在子组件中使用watch监听props的变化:
```
props: {
messageDataList: {
type: Array,
default: () => []
}
},
watch: {
messageDataList: function (newVal, oldVal) {
console.log('messageDataList changed:', newVal)
}
}
```
当父组件传递props给子组件时,子组件会立即响应并输出初始值。如果父组件后续更新了props的值,子组件也会相应地输出更新后的值。
需要注意的是,如果你想要在子组件中对props进行修改,需要使用Vue提供的emit方法来触发父组件的事件,从而让父组件来修改props的值。这是因为在Vue 3中,props是只读的,不能直接在子组件中修改。