欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

vue2實現數據請求顯示loading圖

一般項目中,有時候會要求,你在數據請求的時候顯示一張gif圖片,然后數據加載完后,消失。這個,一般只需要在封裝的axios中寫入js事件即可。當然,我們首先需要在app.vue中,加入此圖片。如下:

創(chuàng)新互聯專注于貢山網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供貢山營銷型網站建設,貢山網站制作、貢山網頁設計、貢山網站官網定制、微信小程序定制開發(fā)服務,打造貢山網絡公司原創(chuàng)品牌,更為您提供貢山網站排名全網營銷落地服務。

<template>
 <div id="app">
 <loading v-show="fetchLoading"></loading>
 <router-view></router-view>
 </div>
</template>

<script>
 import { mapGetters } from 'vuex';
 import Loading from './components/common/loading';

 export default {
 name: 'app',
 data() {
 return {
 }
 },
 computed: {
 ...mapGetters([
 'fetchLoading',
 ]),
 },
 components: {
 Loading,
 }
 }
</script>

<style>
 #app{
 width: 100%;
 height: 100%;
 }
</style>

這里的fetchLoading是存在vuex里面的一個變量。在store/modules/common.js里需要如下定義:

/* 此js文件用于存儲公用的vuex狀態(tài) */
import api from './../../fetch/api'
import * as types from './../types.js'
const state = {
 // 請求數據時加載狀態(tài)loading
 fetchLoading: false
}
const getters = {
 // 請求數據時加載狀態(tài)
 fetchLoading: state => state.fetchLoading
}
const actions = {
 // 請求數據時狀態(tài)loading
 FETCH_LOADING({
 commit
 }, res) {
 commit(types.FETCH_LOADING, res)
 },
}
const mutations = {
 // 請求數據時loading
 [types.FETCH_LOADING] (state, res) {
 state.fetchLoading = res
 }
}

loading組件如下:

<template>
 <div class="loading">
 <img src="./../../assets/main/running.gif" alt="">
 </div>
</template>

<script>
 export default {
 name: 'loading',
 data () {
 return {}
 },
 }
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
 .loading{
 position: fixed;
 top:0;
 left:0;
 z-index:121;
 width: 100%;
 height: 100%;
 background: rgba(0,0,0,0.3);
 display: table-cell;
 vertical-align: middle;
 text-align: center;
 }
 .loading img{
 margin:5rem auto;
 }
</style>

最后在fetch/api.js里封裝的axios里寫入判斷l(xiāng)oading事件即可:如下

// axios的請求時間
let axiosDate = new Date()
export function fetch (url, params) {
 return new Promise((resolve, reject) => {
 axios.post(url, params)
 .then(response => {
 // 關閉 loading圖片消失
 let oDate = new Date()
 let time = oDate.getTime() - axiosDate.getTime()
 if (time < 500) time = 500
 setTimeout(() => {
  store.dispatch('FETCH_LOADING', false)
 }, time)
 resolve(response.data)
 })
 .catch((error) => {
 // 關閉 loading圖片消失
 store.dispatch('FETCH_LOADING', false)
 axiosDate = new Date()
 reject(error)
 })
 })
}
export default {
 // 組件中公共頁面請求函數
 commonApi (url, params) {
 if(stringQuery(window.location.href)) {
 store.dispatch('FETCH_LOADING', true);
 }
 axiosDate = new Date();
 return fetch(url, params);
 }
}

這樣就實現了,項目中當加載數據的時候,顯示gif圖片,當數據加載出來時消失。

關于vue.js的學習教程,請大家點擊專題vue.js組件學習教程、Vue.js前端組件學習教程進行學習。

更多vue學習教程請閱讀專題《vue實戰(zhàn)教程》

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯。

網站題目:vue2實現數據請求顯示loading圖
分享網址:http://www.chinadenli.net/article46/gedjhg.html

成都網站建設公司_創(chuàng)新互聯,為您提供服務器托管靜態(tài)網站全網營銷推廣網站策劃電子商務網站設計

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站建設網站維護公司