``` 父组件向子组件传递数据 ```父组件向子组件传递数据
时间: 2024-12-19 21:22:46 浏览: 8
在 Vue.js 中,父组件向子组件传递数据通常有两种方式:
1. **props(属性)**:
- 使用 `props` 属性接收数据。父组件通过标签属性形式传递数据,例如:
```html
<!-- 父组件 -->
<ChildComponent :data="parentData" />
```
- 在 ChildComponent 组件中,通过 `props` 定义并接收这个数据:
```javascript
// 子组件 ChildComponent.vue
export default {
props: ['data'],
// ...
mounted() {
console.log(this.data); // 接收父组件传递的数据
}
}
```
2. **自定义事件($emit)**:
- 如果需要双向绑定或者动态更新,父组件可以通过 `$emit` 触发表达式式的事件,子组件监听该事件并处理数据,如:
```html
<!-- 父组件 -->
<ChildComponent @childEvent="handleChildData" />
```
```javascript
// 父组件 methods
handleChildData(data) {
this.parentData = data; // 更新父组件的数据
}
```
- 子组件中,`@childEvent` 听取来自父组件的事件:
```javascript
// 子组件 ChildComponent.vue
emitChange(newData) {
this.$emit('childEvent', newData);
}
```
这两种方法根据具体需求选择合适的传递方式,props 更适合静态的数据传递,而自定义事件适用于复杂的状态同步场景。
阅读全文