【 vue使用请求loading:组件形式】

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); 
        });
    },
  },
 }

你可能感兴趣的:(前端,vue,vue.js,javascript,前端)