vue等待get请求完毕后在进行组件传值
时间: 2024-04-14 22:27:24 浏览: 133
在Vue中,你可以使用`axios`或者`fetch`等库来发送GET请求,并且可以在请求完成后进行组件传值。下面是一个示例代码:
```vue
<template>
<div>
<div v-if="loading">Loading...</div>
<div v-else>
<!-- 在请求完成后使用获取到的数据 -->
<child-component :data="responseData"></child-component>
</div>
</div>
</template>
<script>
import axios from 'axios';
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
loading: true,
responseData: null
};
},
mounted() {
// 发送GET请求
axios.get('/api/data')
.then(response => {
// 请求成功后设置loading为false,并将数据赋值给responseData
this.loading = false;
this.responseData = response.data;
})
.catch(error => {
console.error(error);
});
}
};
</script>
```
在上面的示例中,我们使用了`axios`库发送GET请求,并在请求成功后将返回的数据赋值给`responseData`,同时将`loading`设置为`false`,表示请求已经完成。然后,我们将获取到的数据传递给子组件`ChildComponent`进行使用。
这样,在父组件中,你可以通过`this.responseData`来访问获取到的数据,并且在请求完成前会显示"Loading...",请求完成后才会渲染子组件并传递数据。
阅读全文