vue3 父组件A有子组件B,B访问接口获取数据后,获得ID传给父组件A,父组件A再根据ID访问接口获取数据要怎么写
在Vue3中,可以使用Props和emit来实现父子组件之间的数据传递。
首先,在子组件B中,获取数据后,通过emit方法将ID值传递给父组件A:
// 子组件B中获取数据后
const id = responseData.id;
this.$emit('update:id', id);
然后,在父组件A中,使用Props来接收子组件B传递的ID值,并在ID值发生变化时,调用方法获取相应的数据:
<template>
<div>
<ChildB @update:id="handleIdUpdated" />
<!-- 根据ID获取数据 -->
<div v-if="data">{{ data }}</div>
</div>
</template>
<script>
import ChildB from './ChildB.vue';
export default {
components: {
ChildB,
},
props: {
id: {
type: Number,
default: 0,
},
},
data() {
return {
data: null,
};
},
methods: {
async getData() {
const response = await fetch(`url?id=${this.id}`);
this.data = await response.json();
},
handleIdUpdated(id) {
this.id = id;
this.getData();
},
},
};
</script>
在父组件A的模板中,将子组件B引入,并监听子组件B触发的update:id事件。当子组件B传递ID值时,会调用handleIdUpdated方法,该方法将ID值赋给id属性,并调用getData方法获取相应的数据。
这样,在子组件B中获取数据后,父组件A就可以根据ID访问接口获取数据了。
原文地址: https://www.cveoy.top/t/topic/PC 著作权归作者所有。请勿转载和采集!