vue3 父子组件传值 defineProps
时间: 2023-09-30 20:13:23 浏览: 239
父子组件之间的值传递在 Vue 3 中可以通过 `defineProps` 和 `emit` 进行实现。
在子组件中,你可以使用 `defineProps` 来定义接收父组件传递的属性。例如:
```javascript
// 子组件 Child.vue
import { defineProps } from 'vue';
export default {
props: {
message: String
},
setup(props) {
// 使用 defineProps 定义接收的属性
defineProps({
message: {
type: String,
required: true
}
});
// 访问父组件传递的属性
console.log(props.message);
return {
// ...
}
}
}
```
在父组件中,你可以通过在子组件标签上使用 v-bind 或者直接传递值来传递属性。例如:
```html
<template>
<div>
<child-component :message="parentMessage" />
</div>
</template>
<script>
import ChildComponent from './Child.vue';
export default {
components: {
ChildComponent
},
data() {
return {
parentMessage: 'Hello from parent component'
}
}
}
</script>
```
这样子组件就可以通过 `props.message` 访问到父组件传递的属性值了。
另外,如果你需要在子组件中修改父组件的值,可以通过使用 `emit` 来触发父组件中的事件。具体的用法可以参考 Vue 官方文档中关于事件处理的部分。
阅读全文