我试图使用Vue ProgressBar在我的项目上制作一个加载栏,它在我的路线上工作,当Axios获取或发布请求时不工作。
这是我的项目代码,当我启动加载栏,
<script>
import Swal from 'sweetalert2';
import Editor from '@tinymce/tinymce-vue';
export default {
components: {
'editor': Editor
},
title() {
return 'Stock group data';
},
data() {
return {
stockgroup: {},
user: {},
}
},
created() {
this.$Progress.start();
this.loadDataWarehouse();
this.loadUser();
this.$Progress.finish();
},
methods: {
async loadDataWarehouse() {
const response = await axios.get('/api/stock-group/' + this.$route.params.id);
this.stockgroup = response.data;
},
async loadUser() {
const resp = await axios.get('/api/contact-list');
this.user = resp.data;
},
},
}
</script>
this.$Progress.start()
行是执行加载条的地方。
但是在我这样做之前,我已经阅读了文档,我们必须在默认的Vue应用程序上添加代码。
所以我把这段代码添加到我的App.vue
中
但是当我运行它并请求获取数据时,我不知道为什么它没有显示加载条。你可以在这里看到它。
有人能帮我吗?求你了...
2条答案
按热度按时间46scxncf1#
如果你想在每个请求上显示进度条而不需要重复开始和结束代码.你可以尝试使用
axios interceptor
kninwzqo2#
您正在查看正在调用的
async
函数!实际上,你所做的是,在调用两个
async
函数后,显示进度条并隐藏它。你有两个选择。
1.将
hook
设置为异步,将await
设置为内部。或
1.将两者都推入
promises
数组并等待--这在可读性方面没有那么优雅,但在性能方面可能会更好,因为它不像选项1那样等待第一个承诺返回执行第二个承诺。