在VueJs中,将数据从子组件传递到父组件的方式有两种:使用事件触发和使用$emit
方法。
$emit
方法触发一个自定义事件,并传递需要传递给父组件的数据。父组件通过在子组件标签上监听该事件,并定义一个方法来接收传递过来的数据。子组件代码示例:
<template>
<button @click="sendDataToParent">传递数据给父组件</button>
</template>
<script>
export default {
methods: {
sendDataToParent() {
this.$emit('data', '这是传递给父组件的数据');
}
}
};
</script>
父组件代码示例:
<template>
<div>
<child-component @data="handleDataFromChild"></child-component>
<p>从子组件接收到的数据:{{ receivedData }}</p>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
receivedData: ''
};
},
methods: {
handleDataFromChild(data) {
this.receivedData = data;
}
}
};
</script>
推荐腾讯云相关产品:腾讯云云服务器(ECS),链接地址:https://cloud.tencent.com/product/cvm
$emit
方法:
在子组件中,通过this.$emit
方法将需要传递给父组件的数据直接传递给父组件,父组件通过在子组件标签上使用v-on
或@
绑定一个方法来接收传递过来的数据。子组件代码示例:
<template>
<button @click="sendDataToParent">传递数据给父组件</button>
</template>
<script>
export default {
methods: {
sendDataToParent() {
this.$emit('data', '这是传递给父组件的数据');
}
}
};
</script>
父组件代码示例:
<template>
<div>
<child-component v-on:data="handleDataFromChild"></child-component>
<p>从子组件接收到的数据:{{ receivedData }}</p>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
receivedData: ''
};
},
methods: {
handleDataFromChild(data) {
this.receivedData = data;
}
}
};
</script>
推荐腾讯云相关产品:腾讯云云服务器(ECS),链接地址:https://cloud.tencent.com/product/cvm
领取专属 10元无门槛券
手把手带您无忧上云