vue使用请求loading:组件形式(不推荐:太麻烦了,每个需要用到的页面都需要引用一次组件)
这是我项目中想使用loading之后踩的第一个坑,后面优化用了vant自带的提示框,比较简单,
可移步这篇文章→→→ vue+vant使用请求loading
1. com/loading.vue
<template><div class="loading"><div class="load-box"><img src="@/assets/img/Loading.png" /> </div></div>
</template><script>
export default {name: "loading",props: { },created() { },
};
</script><style scoped lang="less">
.loading {width: 100%;height: 100%;position: absolute;top: 0;left: 0;display: flex;justify-content: center;align-items: center;z-index: 9999;.load-box {background-color: rgba(0, 0, 0, 0.5);width: 100px;height: 100px;border-radius: 5px;box-shadow: 0px 1px 15px rgba(0, 0, 0, 0.5);color: #fff;display: flex;flex-direction: column;align-items: center;justify-content: center;letter-spacing: 0.8px;font-size: 13px;img {width: 50px;// margin-bottom: 8px;-webkit-animation: rotate 0.8s linear infinite;}}
}@keyframes rotate {to {transform: rotate(360deg);}
}
</style>
2. main.js全局引用
import Loading from '@/components/loading'
Vue.component('Loading', Loading)
3. 在页面中使用
<!-- 组件 --><Loading v-show="pageLoading" /> </div>
</template><script>
export default {data() {return {pageLoading: true, //控制是否显示}},methods: {// 查询库存queryStorage() {var q_obj = {fn: "xxx",md: "xxx", data: {xxx:xxx},};this.pageLoading = true;//控制是否显示queryStorage(q_obj).then((res) => { this.pageLoading = false;//控制是否显示}).catch((error) => { this.pageLoading = false; //控制是否显示this.$toast.fail(error); });},},}