vue2子组件给父组件传递数据
时间: 2023-08-21 17:08:38 浏览: 260
在Vue 2中,子组件向父组件传递数据最常用的方式是通过事件触发。具体步骤如下:
1. 在子组件中,使用$emit方法触发一个自定义事件,并传递需要传递的数据作为参数。例如:
```javascript
// 子组件
<template>
<button @click="sendData">发送数据给父组件</button>
</template>
<script>
export default {
methods: {
sendData() {
this.$emit('data', 'Hello World');
}
}
}
</script>
```
2. 在父组件中,通过在子组件上监听这个自定义事件,并在方法中接收传递的数据。例如:
```javascript
// 父组件
<template>
<div>
<child-component @data="receiveData"></child-component>
<p>接收到的数据:{{ receivedData }}</p>
</div>
</template>
<script>
export default {
data() {
return {
receivedData: ''
}
},
methods: {
receiveData(data) {
this.receivedData = data;
}
}
}
</script>
```
这样,当子组件中的按钮被点击时,就会触发自定义事件"data",并将字符串"Hello World"作为参数传递到父组件中的方法receiveData中,然后父组件就可以使用receivedData来接收并显示传递的数据。
同时也可以使用.sync修饰符简化这个过程,不需要手动监听事件和编写接收数据的方法。例如:
```javascript
// 父组件
<template>
<div>
<child-component v-model:receivedData="receivedData"></child-component>
<p>接收到的数据:{{ receivedData }}</p>
</div>
</template>
<script>
export default {
data() {
return {
receivedData: ''
}
}
}
</script>
// 子组件
<template>
<button @click="sendData">发送数据给父组件</button>
</template>
<script>
export default {
props: ['receivedData'],
methods: {
sendData() {
this.$emit('update:receivedData', 'Hello World'); }
}
}
</script>
```
使用.sync修饰符,父组件可以直接将接收数据的属性传递给子组件,子组件中只需要通过$emit方法触发update事件并传递数据即可。这样就能实现子组件向父组件传递数据的功能。
阅读全文