在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访问接口获取数据了。

vue3
父组件A有子组件B,B访问接口获取数据后,获得ID传给父组件A,父组件A再根据ID访问接口获取数据要怎么写

原文地址: https://www.cveoy.top/t/topic/PC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录