欧美日韩调教_欧美精品啪啪_欧美精品97_国产女主播一区二区_欧美精品播放_亚洲精品乱码久久久久久蜜桃91_中文欧美日韩_夜夜爽www精品_国产亚洲亚洲_国产欧美日韩亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > 手把手帶你用vue實現(xiàn)全屏loading插件

手把手帶你用vue實現(xiàn)全屏loading插件

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-06-06 11:33:00 1654486380

## 前言:

由于我們打開網(wǎng)頁時,瀏覽器與服務器交互需要時間,受限于寬帶以及服務器性能,導致用戶在訪問一個網(wǎng)頁時,往往需要一個等待期,才能在瀏覽器中真正完全展示出網(wǎng)頁內(nèi)容。在網(wǎng)頁加載過程中網(wǎng)頁就是一片空白,對于我們用戶而言,我們看到一片空白,還以為網(wǎng)站 "掛掉了",就很憂傷!!

手把手帶你用實現(xiàn)vue全屏loading插件

當然了,我們針對這個問題,各大網(wǎng)站都有自己的解決方案。

有的網(wǎng)站會用骨架屏。

比如掘金:利用骨架屏,給用戶提醒,網(wǎng)站內(nèi)容馬上呈現(xiàn)給您,不要著急!

有的網(wǎng)站會選擇在數(shù)據(jù)出來之前 定義一個全屏的loading,提供用于網(wǎng)站正在加載

比如:網(wǎng)站在加載時以及網(wǎng)站刷新時,會彈出全屏loading。

## 文章目的:

今天我們就要帶大家實現(xiàn),在vue開發(fā)的前后端分離應用中,實現(xiàn)在網(wǎng)頁加載以及刷新時,實現(xiàn)如上圖全屏loading的效果!

### 功能分析

vue項目中所有的請求一般都是通過axios,所以我們需要給axios新增請求和響應攔截,在請求攔截中顯示loading,和響應攔截中關(guān)閉loading。

所以我們需要定義兩個全局方法,一個是顯示loading,叫$showLoading(),另一個叫$hideLoading()關(guān)閉全屏loading。

### 代碼實現(xiàn)

上面的梳理,我們明確了,需要定義兩個全局方法,一個顯示loading一個關(guān)閉loading,這里我們定義一個Vue的插件通過插件動態(tài)給實例安裝 顯示和關(guān)閉Loading方法。

- 定義$loading插件,在Vue構(gòu)造函數(shù)原型上添加兩個方法

以下loading.js代碼

```text
const $loading = {
    install: (Vue) => {
        // 添加 顯示loading方法
        Vue.prototype.$showLoading = () => {
            console.log('loading顯示')
        }
        // 添加關(guān)閉loading方法
        Vue.prototype.$hideLoading = () => {
            console.log('loading關(guān)閉')
        }
    }
}
export default $loading;
// 使用時 在main.js入口函數(shù)中引入 使用插件即可安裝
Vue.use($loading)
```

- 添加axios請求和響應攔截,調(diào)用顯示和關(guān)閉loading方法

```text
import Vue from 'vue'
// 定義Vue實例 調(diào)用全局顯示和關(guān)閉loading方法
const vm = new Vue()
// 請求攔截
axios.interceptors.request.use(function (config) {
  // 在這里調(diào)用 顯示loading方法
    vm.$showLoading()
  return config
}, function (error) {
    vm.$hideLoading()
  // 在請求出錯調(diào)用 關(guān)閉loading方法
   
  return Promise.reject(error)
})
// 響應攔截
axios.interceptors.response.use(function (response) {
  // 在這里調(diào)用 關(guān)閉loading方法
    vm.$hideLoading()
  return response
}, function (error) {
  // 在這里調(diào)用 關(guān)閉loading方法
    vm.$hideLoading()
  return Promise.reject(error)
}
```

此時首頁有三次請求,顯示了三次loading顯示和loading關(guān)閉!

當然我們 在數(shù)據(jù)請求不是打印,而是 顯示loading,數(shù)據(jù)過來時應該關(guān)閉loading,所以接下來我們實現(xiàn)這兩個效果

- 通過單文件組件 定義顯示loading結(jié)構(gòu)

我們目前的問題是,在顯示loading時不是打印而是要顯示全局loading的html結(jié)構(gòu),在關(guān)閉loading時要隱藏!

為了實現(xiàn)這個需求,我們通過vue的單文件組件來定義loading的html結(jié)構(gòu)和控制loading顯示隱藏

loading.vue

```text
<template>
 <!--
  mask是loading的背景 v-show控制loading顯示消失
 -->
 <div class="mask" v-show="isShow">       
        <div class="loading"></div>        
    </div>
    </div>
</template>
<script>
export default {
    data () {
        return {
            // loading默認不顯示
            isShow: false
        }
    }
}
</script>
<style lang="scss">
 // 定義動畫 控制 loading旋轉(zhuǎn)
@keyframes rotate {
  0%{
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.mask{
  position: fixed;
  left:0;
  right:0;
  top:0;
  bottom:0;
  background-color: rgba(0,0,0,.7);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  .loading{
    width: 30px;
    height: 30px;
    border: 6px solid rgb(219, 140, 13);
    border-radius: 21px;
    border-left-color:transparent;
    animation: rotate 500ms infinite;
  }
}
</style>
```

- loading.js中獲取單文件組件 html結(jié)構(gòu) 并在 $showLoading方法調(diào)用時顯示,在$hideLoading時隱藏

loading.js中

```js
import LoadingVue from './loading.vue'
const $loading = {
    install: (Vue) => {
        // 通過 Vue.extend方法 獲取LoadingComponent 組件 類
        const LoadingComponent = Vue.extend(LoadingVue);
        // new LoadingComponent得到組件的實例
        const vm = new LoadingComponent();
        // 獲取組件實例的html 并插入到body中
        const tpl = vm.$mount().$el;
        // 插入到body中
        document.body.appendChild(tpl);
        // 添加 顯示loading方法
        Vue.prototype.$showLoading = () => {
            // 通過改變實例 .mask v-show綁定變量控制顯示
            vm.isShow = true
        }
        // 添加關(guān)閉loading方法
        Vue.prototype.$hideLoading = () => {
            // 通過改變實例 .mask v-show綁定變量控制隱藏
            vm.isShow = false
        }
    }
}
```

最后在main.js中使用插件 在axios攔截器中控制顯示隱藏就ok啦!!

main.js

```js
import Vue from 'vue'
import loading from './plugins/loading'
Vue.use(loading)// 構(gòu)造函數(shù)原型上就添加了$showLoading和$hideLoading方法
```

axios攔截器中使用

```js
import Vue from 'vue'
// 定義Vue實例 調(diào)用全局顯示和關(guān)閉loading方法
const vm = new Vue()
// 請求攔截
axios.interceptors.request.use(function (config) {
  // 在這里調(diào)用 顯示loading方法
    vm.$showLoading()
  return config
}, function (error) {
    vm.$hideLoading()
  // 在請求出錯調(diào)用 關(guān)閉loading方法

  return Promise.reject(error)
})
// 響應攔截
axios.interceptors.response.use(function (response) {
  // 在這里調(diào)用 關(guān)閉loading方法
    vm.$hideLoading()
  return response
}, function (error) {
  // 在這里調(diào)用 關(guān)閉loading方法
    vm.$hideLoading()
  return Promise.reject(error)
}
```

是不是很棒,好啦我們的vue全屏loading插件到這里就完成了,小伙伴們回去試一試吧。

更多關(guān)于web培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學管理及學員服務,助力更多學員實現(xiàn)高薪夢想。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
欧美日韩调教_欧美精品啪啪_欧美精品97_国产女主播一区二区_欧美精品播放_亚洲精品乱码久久久久久蜜桃91_中文欧美日韩_夜夜爽www精品_国产亚洲亚洲_国产欧美日韩亚洲
91福利国产精品| 亚洲午夜精品17c| 一区二区三区欧美视频| 色综合久久中文字幕| 日韩一区二区三区视频在线观看 | 成人av综合一区| 色国产综合视频| 亚洲午夜在线电影| 国产欧美大片| 亚洲精品视频免费观看| 在线亚洲观看| 尤物av一区二区| 亚洲国产精品第一区二区三区| 久久久久久久高潮| 午夜欧美在线一二页| 国产精品日本欧美一区二区三区| 精品国产伦一区二区三区观看方式| 久久色成人在线| 国产99久久久国产精品免费看| 在线精品亚洲| 国产精品久久综合| 高清不卡一二三区| 日本一区二区三区视频视频| 日韩午夜在线观看| 欧美日韩国产免费| 欧美性猛交xxxx乱大交退制版 | 欧美黄色免费| 久久人人爽爽爽人久久久| 一本色道a无线码一区v| 亚洲欧美国产毛片在线| 久久国产精品一区二区三区四区 | 欧美一区二区日韩一区二区| 精品亚洲porn| 一本色道久久综合亚洲二区三区| 久久这里只有精品6| 91网上在线视频| 欧美激情在线一区二区| 亚洲激情一区| 日韩不卡一二三区| 777午夜精品免费视频| 99精品视频中文字幕| 国产精品污www在线观看| 一区二区冒白浆视频| 日本午夜一区二区| 欧美一级片免费看| 欧美啪啪一区| 一区二区三区精品在线观看| 久久综合网络一区二区| 国产一区二区在线免费观看| 久久夜色精品一区| 亚洲美女毛片| 欧美aa在线视频| 日韩一区二区三区免费看 | 欧美一级片在线| 99免费精品在线| 中文字幕电影一区| 成人免费毛片a| 中文字幕一区av| 国产日韩欧美一区在线| 免费精品99久久国产综合精品| aa日韩免费精品视频一| 日韩国产欧美三级| 欧美mv和日韩mv国产网站| 黄色亚洲免费| 蜜臀av一区二区在线观看| 国产精品亚洲第一区在线暖暖韩国| 亚洲精一区二区三区| 亚洲精品三级| 在线观看视频一区| 国产日韩欧美不卡在线| 国产精品理伦片| 欧美一级黄色录像| 亚洲精品九九| 国产在线精品视频| 久久久www成人免费毛片麻豆| 亚洲bdsm女犯bdsm网站| 日韩精品欧美成人高清一区二区| 国产日韩欧美在线一区| 国产精品久久综合| 国产最新精品精品你懂的| 成年人国产精品| 国产精品综合色区在线观看| 欧美日韩国产精选| 国产精品美日韩| 久久99精品久久久久婷婷| 不卡欧美aaaaa| 久久久久久穴| 国产日产亚洲精品系列| 日本女人一区二区三区| 国产高清一区日本| 中文亚洲免费| 久久久久久夜精品精品免费| 日本中文字幕一区二区有限公司| 一区二区三区在线视频观看58| www国产精品av| 亚洲综合在线视频| www.欧美色图| 在线免费视频一区二区| 亚洲男人的天堂在线aⅴ视频| 国产精品乱码久久久久久| 亚洲在线一区二区三区| 岛国一区二区在线观看| 色域天天综合网| 久久精品一区二区三区不卡| 午夜欧美电影在线观看| 97se亚洲国产综合自在线| 日本国产一区二区| 亚洲清纯自拍| 国产不卡在线播放| 五月婷婷激情综合网| 国产精品每日更新在线播放网址| 中文字幕第一区二区| 亚洲人成网站影音先锋播放| 成人av资源在线| 欧美美女黄视频| 日韩中文字幕不卡| 国产伦理一区| 一区二区三区中文字幕精品精品 | 国产精品一区二区久激情瑜伽| 亚洲黄色av一区| 91麻豆产精品久久久久久| 欧美美女视频在线观看| 秋霞国产午夜精品免费视频| 国产精品区一区| 高清成人在线观看| 亚洲成人免费观看| 国产精品久久久久久久久搜平片| 亚洲综合视频在线| 一区二区三区国产盗摄| 欧美日韩免费| 国产精品日产欧美久久久久| 成人av网址在线观看| 日韩一区二区三区视频| 国产精品一区二区你懂的| 3d动漫精品啪啪一区二区竹菊| 久久婷婷成人综合色| 成人综合婷婷国产精品久久| 91精品国产综合久久精品麻豆| 精品国产乱码久久久久久图片| 国产女同互慰高潮91漫画| 成人欧美一区二区三区1314| 欧美在线免费观看视频| 美女诱惑黄网站一区| 伊人天天综合| 欧美91视频| 在线成人h网| 国产精品盗摄一区二区三区| 亚洲动漫精品| 亚洲成人免费在线| 在线国产亚洲欧美| 国产精品亚洲视频| 日韩天堂在线观看| 99久久婷婷国产综合精品电影| 欧美激情综合色综合啪啪| 欧美成人一区二区三区| 欧美一区二区三区四区在线观看地址 | 亚洲一区二区三区三| 国产精品乱子乱xxxx| 亚洲精品成a人| 国产欧美亚洲日本| 日本伊人色综合网| 欧美精品久久久久久久多人混战 | 欧美激情一区二区三区全黄| 一区二区三区加勒比av| 日本高清无吗v一区| 成人黄色小视频在线观看| 国产亚洲婷婷免费| 国产精品入口66mio| 亚洲国产日日夜夜| 欧美日韩精品电影| 欧美日韩国产探花| 全国精品久久少妇| 国产欧美日产一区| 在线一区二区三区四区| 91一区二区三区在线播放| 亚洲综合一区二区精品导航| 欧美视频一区二| 亚洲丝袜精品丝袜在线| 久久久精品tv| 国产精品乱人伦| 亚洲另类在线视频| 亚洲免费色视频| 日韩avvvv在线播放| 久久亚洲二区三区| 蜜桃av久久久亚洲精品| 成人久久视频在线观看| 亚洲激情校园春色| 久久精子c满五个校花| 在线日韩一区二区| 精品不卡在线| 国产成人av一区二区三区在线观看| 亚洲欧美网站| 国产传媒一区在线| 亚洲综合男人的天堂| 日韩免费成人网| 久久精品官网| 色嗨嗨av一区二区三区| 91福利视频在线| 欧美精品高清视频| 欧美一区二区三区小说|