亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue-Router實(shí)現(xiàn)頁面正在加載特效方法示例

 更新時間:2017年02月12日 08:36:26   投稿:daisy  
這篇文章主要給大家介紹了利用Vue-Router實(shí)現(xiàn)頁面正在加載特效方法示例,文中給出了詳細(xì)的示例代碼,相信對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。

前言

vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用。vue的單頁面應(yīng)用是基于路由和組件的,路由用于設(shè)定訪問路徑,并將路徑和組件映射起來。傳統(tǒng)的頁面應(yīng)用,是用一些超鏈接來實(shí)現(xiàn)頁面切換和跳轉(zhuǎn)的。在vue-router單頁面應(yīng)用中,則是路徑之間的切換,也就是組件的切換。

如果你在使用 Vue.js 和 Vue-Router 開發(fā)單頁面應(yīng)用。因?yàn)槊總€頁面都是一個 Vue 組件,你需要從服務(wù)器端請求數(shù)據(jù),然后再讓 Vue 引擎來渲染到頁面上。

例如,這里有個用戶個人資料的頁面。

user.vue 文件如下:

<template>
 <div>
  <h2 v-text="user.name"></h2>
  <p v-text="user.description"></p>
 </div>
</template>
<script>
 export default{
  data(){
   return{
    user: {}
   }
  }
 }
</script>

在動畫過渡期間向服務(wù)器請求數(shù)據(jù),如下:

<script>
export default{
 data(){
  return{
   user: {}
  }
 },
 route: {
  data: function (transition) {
   this.getUserDetails(transition);
  }
 },
 methods: {
  getUserDetails(transition)
  {
   this.$http.get('/users/' + this.$route.params.userName)
    .then(function (response) {
     this.user = response.data;
     transition.next();
    });
  }
 }
}
</script>

這樣,我們可以通過訪問變量 $loadingRouteData。就可以實(shí)現(xiàn)隱藏所有的頁面元素,顯示某個正在加載的元素,比如某個 logo 等。

<div v-if="$loadingRouteData">
 <div class="white-widget grey-bg author-area">
 <div class="auth-info row">
 <div class="timeline-wrapper">
 <div class="timeline-item">
  <div class="animated-background">
   <div class="background-masker header-top"></div>
   <div class="background-masker header-left"></div>
   <div class="background-masker header-right"></div>
   <div class="background-masker header-bottom"></div>
   <div class="background-masker subheader-left"></div>
   <div class="background-masker subheader-right"></div>
   <div class="background-masker subheader-bottom"></div>
  </div>
 </div>
 </div>
 </div>
 </div>
</div>
<div v-if="!$loadingRouteData">
 <div>
  <h2 v-text="user.name"></h2>
  <p v-text="user.description"></p>
 </div>
</div>

比如,正在加載的樣式代碼如下:

.timeline-item {
 background: #fff;
 border-bottom: 1px solid #f2f2f2;
 padding: 25px;
 margin: 0 auto;
}

@keyframes placeHolderShimmer{
 0%{
 background-position: -468px 0
 }
 100%{
 background-position: 468px 0
 }
}

.animated-background {
 animation-duration: 1s;
 animation-fill-mode: forwards;
 animation-iteration-count: infinite;
 animation-name: placeHolderShimmer;
 animation-timing-function: linear;
 background: #f6f7f8;
 background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%);
 background-size: 800px 104px;
 height: 40px;
 position: relative;
}

.background-masker {
 background: #fff;
 position: absolute;
}

/* Every thing below this is just positioning */

.background-masker.header-top,
.background-masker.header-bottom,
.background-masker.subheader-bottom {
 top: 0;
 left: 40px;
 right: 0;
 height: 10px;
}

.background-masker.header-left,
.background-masker.subheader-left,
.background-masker.header-right,
.background-masker.subheader-right {
 top: 10px;
 left: 40px;
 height: 8px;
 width: 10px;
}

.background-masker.header-bottom {
 top: 18px;
 height: 6px;
}

.background-masker.subheader-left,
.background-masker.subheader-right {
 top: 24px;
 height: 6px;
}


.background-masker.header-right,
.background-masker.subheader-right {
 width: auto;
 left: 300px;
 right: 0;
}

.background-masker.subheader-right {
 left: 230px;
}

.background-masker.subheader-bottom {
 top: 30px;
 height: 10px;
}

.background-masker.content-top,
.background-masker.content-second-line,
.background-masker.content-third-line,
.background-masker.content-second-end,
.background-masker.content-third-end,
.background-masker.content-first-end {
 top: 40px;
 left: 0;
 right: 0;
 height: 6px;
}

.background-masker.content-top {
 height:20px;
}

.background-masker.content-first-end,
.background-masker.content-second-end,
.background-masker.content-third-end{
 width: auto;
 left: 380px;
 right: 0;
 top: 60px;
 height: 8px;
}

.background-masker.content-second-line {
 top: 68px;
}

.background-masker.content-second-end {
 left: 420px;
 top: 74px;
}

.background-masker.content-third-line {
 top: 82px;
}

.background-masker.content-third-end {
 left: 300px;
 top: 88px;
}

這樣,你就有了 Vue-Router 的正在加載時候的效果了。你可以把以上代碼寫進(jìn)到一個單獨(dú)的組件內(nèi),在你用的地方引用它就行。

最后

這僅是個關(guān)于 Vue-Router 加載的組件的簡單教程,實(shí)際上可以在許多地方來進(jìn)行改進(jìn),

VueJobs.com

如果你是一位對 Vue.js 感興趣的前端工程師,可去這個網(wǎng)上瀏覽下,了解下國外對 Vue 開發(fā)者的要求。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • vue項(xiàng)目配置代理如何解決跨域問題

    vue項(xiàng)目配置代理如何解決跨域問題

    這篇文章主要介紹了vue項(xiàng)目配置代理如何解決跨域問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue3 使用axios攔截器打印前端日志

    Vue3 使用axios攔截器打印前端日志

    這篇文章主要介紹了Vue3 使用axios攔截器打印前端日志,這是一種比較值得推薦的方式,也就是寫一次,就不用總寫console.log了。下面來看看文章的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • vue element table 表格請求后臺排序的方法

    vue element table 表格請求后臺排序的方法

    今天小編就為大家分享一篇vue element table 表格請求后臺排序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 詳解vue 計(jì)算屬性與方法跟偵聽器區(qū)別(面試考點(diǎn))

    詳解vue 計(jì)算屬性與方法跟偵聽器區(qū)別(面試考點(diǎn))

    這篇文章主要介紹了詳解vue 計(jì)算屬性與方法跟偵聽器區(qū)別(面試考點(diǎn)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • vue自定義全局組件(自定義插件)的用法

    vue自定義全局組件(自定義插件)的用法

    這篇文章主要介紹了vue自定義全局組件(自定義插件)的用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 創(chuàng)建和運(yùn)行Vue.js項(xiàng)目方法demo

    創(chuàng)建和運(yùn)行Vue.js項(xiàng)目方法demo

    這篇文章主要為大家介紹了創(chuàng)建和運(yùn)行Vue.js項(xiàng)目方法demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • vue實(shí)現(xiàn)多級菜單效果

    vue實(shí)現(xiàn)多級菜單效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)多級菜單效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • unix時間戳轉(zhuǎn)換的方法詳解

    unix時間戳轉(zhuǎn)換的方法詳解

    將 unix 時間戳轉(zhuǎn)換為日期時間和使用日期時間轉(zhuǎn)換為 unix 時間戳,在項(xiàng)目中常常用到,其中vue中的moment庫很是方便,下面小編就來為大家講講具體使用吧
    2023-09-09
  • vue監(jiān)聽鍵盤事件的相關(guān)總結(jié)

    vue監(jiān)聽鍵盤事件的相關(guān)總結(jié)

    這篇文章主要介紹了vue監(jiān)聽鍵盤事件的相關(guān)總結(jié),幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2021-01-01
  • Vue打包優(yōu)化之生產(chǎn)環(huán)境刪除console日志配置

    Vue打包優(yōu)化之生產(chǎn)環(huán)境刪除console日志配置

    這篇文章主要為大家介紹了Vue打包優(yōu)化之生產(chǎn)環(huán)境刪除console日志配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評論