vue加载loading图

APP.vue

<template>
  <div id="app">
    <loading v-if=‘loading‘></loading>
    <router-view/>
  </div>
</template>

<script>
import { mapState } from "vuex";
import Loading from "./components/loading";
import "./assets/css/reset.css";
export default {
  name: "App",
  data() {
    return {

    };
  },
  mounted() {
  },
  computed:{
        ...mapState([
            ‘loading‘
        ])
   },
  components: {
    Loading
  }
};
</script>

loading.vue 组件

<template>
  <div class="loading">
    <img src="../assets/img/image/loading.gif">
  </div>
</template>

<script>
export default {
  name: "loading",
  data() {
    return {};
  },
  methods:{
  }
};
</script>

<style>
.loading {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 121;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
}
.loading img {
  margin: 5rem auto;
  width: 200px;
  z-index: 999;
}
</style>

vuex中store.js

import Vue from ‘vue‘;
import Vuex from ‘vuex‘;

Vue.use(Vuex);
const state = {
    loading: false
    // 请求数据时加载状态loading
}
const getters = {

}
const actions = {

}
const mutations = {
    // 请求数据时loading
    showLoading(state){
        state.loading = true
    },
    hideLoading (state) {
        state.loading = false
    }
}
export default new Vuex.Store({
    state,
    getters,
    actions,
    mutations
});

http.js (公用的请求数据)

/*
  接口处理函数
  这个函数每个项目都是不一样的,我现在调整的是适用于
  https://cnodejs.org/api/v1 的接口,如果是其他接口
  需要根据接口的参数进行调整。参考说明文档地址:
  https://cnodejs.org/topic/5378720ed6e2d16149fa16bd
  主要是,不同的接口的成功标识和失败提示是不一致的。
  另外,不同的项目的处理方法也是不一致的,这里出错就是简单的alert
*/
function apiAxios (method, url, params, success, failure,error) {
  url_check()
  store.commit(‘showLoading‘)    /**loading请求**/
  axios({
    method: method,
    url: url,
    data: method === ‘POST‘ || method === ‘PUT‘ ? params : null,
    params: method === ‘GET‘ || method === ‘DELETE‘ ? params : null,
    baseURL: root,
    withCredentials: true,
    headers:{
        ‘token‘:store.state.token
    }
  })
  .then(function (res) {
       console.log(res.data);
      if(res.data.code== 0) { if (success) {
            store.commit(‘hideLoading‘) /**请求成功后取消loading状态**/
          success(res.data)
          console.log(res.data);
        }
      }else if(res.data.code==‘800202‘){
          alert(‘身份已过期,请重新登录!‘)
          window.location.href = "/login";
      }else if(res.data.code==‘800203‘){
          alert(‘您的帐号已在其他设备登陆,请重新登录!‘)
          window.location.href = "/login";
      }else{
        if (failure) {
          failure(res.data)
        }else{
          console.log(‘error: ‘ + JSON.stringify(res.data))
        }
      }
    })
    .catch(function (err) {
      if(error){
        error(err)
      }
    })
}

-------END

原文地址:https://www.cnblogs.com/liujiajiablog/p/10551133.html

时间: 2024-10-01 09:58:18

vue加载loading图的相关文章

简易仿ios菊花加载loading图

原文链接:https://mp.weixin.qq.com/s/wBbQgOfr59wntNK9ZJ5iRw 项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loading,一般用的比较多的是仿照ios 的菊花加载loading 图,当然一些条件下还会涉及到加载成功/ 失败情况的显示,还有显示文字. 使用ProgressBar 来加载动画转圈,这里使用drawable文件 定义转圈动画,indeterminateDrawable属性进行加载. <?xml vers

Unity游戏场景加载Loading详解

游戏中的Loading现在都做得很漂亮,但是归根究底就两种类型,静态Loading和动态Loading.静态Loading可能就是一张背景图.而动态的Loading就是在读取的同时有一个东西在“转圈”. 1.静态Loading:优点:读取场景使用同步的方法就可以,因为是同步方法所以读取的速度是最快的,也不用更新界面,因为同步执行方法的时候程序在等待读取结束.执行Application.LoadLevel(“name”);同步方法来加载你的场景. 缺点:Loading的时候如果界面不动,那么用户体

一个很酷的加载loading效果

一个很酷的加载loading效果,自定义LeafLoadingView实现,LeafLoadingView继承view,本例子主要由以下几点构成(1):RotateAnimation实现叶子旋转(2):叶子飘动(3):当前进度绘制当前进度条大体实现: @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas); // 绘制进度条和叶子        // 之所以把叶子放在进度条里绘制,主要是层级原

Android 高清加载巨图方案 拒绝压缩图片

Android 高清加载巨图方案 拒绝压缩图片

jQuery8种不同的瀑布流懒加载loading效果

优化图片加载插件jQuery8种不同的瀑布流懒加载loading效果  在线预览 下载地址 实例代码 <ul class="grid effect-1" id="grid"> <li><a href="#"><img src="/api/jq/5733e33ac28cb/images/5.jpg"></a></li> <li><a hre

12种炫酷html5 svg加载loading动画特效

这是一款使用html5 svg制作的加载loading动画特效插件.该加载loading动画特效共有12种效果,使用img标签直接调用svg文件来生成各种SVG动态图片.关于在页面中使用SVG的方法可以参考这篇文章:<如何在网页中使用SVG>. 所有的现代浏览器都支持SVG(IE8及以下浏览器除外),你可以点的这里查看支持SVG的浏览器. 在线演示:http://www.htmleaf.com/Demo/201501071122.html 下载地址:http://www.htmleaf.com

30种CSS3炫酷页面预加载loading动画特效

这是一组效果非常炫酷的CSS3页面预加载loading动画特效.该特效共有30种不同的loading效果.所有的加载动画都是使用CSS3来完成,jQurey代码只是用于隐藏加载动画.当你点击页面的任何一个地方时,loading动画就会被隐藏. 这30种loading动画分为3组:方形加载动画特效.圆形加载动画特效和长条形加载动画特效.每一种效果都有一个单独的页面,你可以对应查看每种效果的CSS代码. 效果演示:http://www.htmleaf.com/Demo/201504151683.ht

SurfaceView加载长图

1:SurfaceView加载长图,移到.可以充当背景 效果截图 2:View (淡入淡出动画没实现:记录下) package com.guoxw.surfaceviewimage; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics

Unity使用脚本进行批量动态加载贴图

先描述一下我正在做的这个项目,是跑酷类音游. 那么跑酷类音游在绘制跑道上的时候,就要考虑不同的砖块显示问题.假设我有了一个节奏列表,那么我们怎么将不同的贴图贴到不同的砖块上去呢? 我花了好几个小时才搞清楚里面的门路,且听我慢慢道来. 首先我们建立一个地图,在上面新建一个Empty Object,将所有的Road砖块全部划分到这个分组里. 效果图如下: 我们得到了一些预制块,接下来我们要将其染上色. 首先的问题是,我们怎么遍历这些砖块呢?很简单,用Tag.我们将所有的砖块打上一个特别的tag,"r