最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue頁(yè)面加載閃爍問(wèn)題的解決方法

 更新時(shí)間:2018年03月28日 10:05:02   作者:在水伊人  
這篇文章主要介紹了vue頁(yè)面加載閃爍問(wèn)題的解決方法,文中給大家提到了v-if 和 v-show 的區(qū)別,解決vue頁(yè)面加載時(shí)出現(xiàn){{message}}閃退的兩種方法,感興趣的朋友一起看看吧

v-if 和 v-show 的區(qū)別

v-if只會(huì)在滿足條件時(shí)才會(huì)編譯,而v-show不管是否滿足條件始終會(huì)編譯,v-show的顯示與隱藏只是簡(jiǎn)單的切換CSS的display屬性。

也就是說(shuō),在使用v-if時(shí),若值為false,那么頁(yè)面將不會(huì)有這個(gè)html標(biāo)簽生成。而v-show:不論其值是false還是true,html元素都會(huì)存在,只是簡(jiǎn)單的切換css的display屬性。

使用場(chǎng)景

    一般來(lái)說(shuō),v-if 有更高的切換消耗而 v-show 有更高的初始渲染消耗。因此,如果需要頻繁切換 v-show 較好,如果在運(yùn)行時(shí)條件不大可能改變 v-if 較好。  

另外

    1.v-if 指令可以應(yīng)用于template包裝元素上,而v-show不支持template

    2.將v-show應(yīng)用在組件上時(shí),因?yàn)橹噶畹膬?yōu)先級(jí) v-else 會(huì)出現(xiàn)問(wèn)題,解決辦法就是用另一個(gè) v-show 替換 v-else

 // 錯(cuò)誤
  <custom-component v-show="condition"></custom-component>
  <p v-else>這可能也是一個(gè)組件</p>
     // 正確做法
  <custom-component v-show="condition"></custom-component>
  <p v-show="!condition">這可能也是一個(gè)組件</p>

解決vue頁(yè)面加載時(shí)出現(xiàn){{message}}閃退

方法一:v-cloak

    v-cloak指令和css規(guī)則如[v-cloak]{display:none}一起用時(shí),這個(gè)指令可以隱藏未編譯的Mustache標(biāo)簽直到實(shí)例準(zhǔn)備完畢。
    v-cloak 指令可以像css選擇器一樣綁定一套css樣式然后這套css會(huì)一直生效到實(shí)例編譯結(jié)束。

  eg:
    // <div> 不會(huì)顯示,直到編譯結(jié)束。
    [v-cloak]{
      display:none;
        }
    <div v-cloak>
       {{ message }}
    </div>

方法二:v-text

vue中我們會(huì)將數(shù)據(jù)包在兩個(gè)大括號(hào)中,然后放到HTML里,但是在vue內(nèi)部,所有的雙括號(hào)會(huì)被編譯成textNode的一個(gè)v-text指令。

而使用v-text的好處就是永遠(yuǎn)更好的性能,更重要的是可以避免FOUC (Flash of Uncompiled Content) ,也就是上面與遇到的問(wèn)題。

eg:
  <span v-text="message"></span>
  <!-- same as -->
  <span>{{message}}</span>

補(bǔ)充:

vue 頁(yè)面加載進(jìn)度條組件

頁(yè)面加載進(jìn)度條最初我是在youtube上看到的,后面幾乎在各大網(wǎng)站上都能見(jiàn)到它的身影,可以讓用戶在加載頁(yè)面的時(shí)候不會(huì)對(duì)著完全空白的頁(yè)面發(fā)呆,提升用戶體驗(yàn)

但是從開(kāi)發(fā)角度講,這種進(jìn)度條在真實(shí)性上確實(shí)很難把握,因?yàn)樵谶壿嫶a加載完成之前,我們都不能統(tǒng)計(jì)到進(jìn)度,而邏輯代碼自身的進(jìn)度也無(wú)法統(tǒng)計(jì)。另外,我們不可能監(jiān)控到所有資源的加載情況。

事實(shí)上,用戶并不是在乎你的頁(yè)面究竟加載了百分之幾,而真正關(guān)心的是離加載完還有多久,以及這個(gè)空白頁(yè)面是沒(méi)有加載完,還是加載完就是空白的。所以沒(méi)我們需要去“模擬”一個(gè)進(jìn)度條,在后端數(shù)據(jù)返回前利用一個(gè)假的動(dòng)畫(huà)效果模擬加載,在數(shù)據(jù)返回后讀完進(jìn)度條并且隱藏。

// progress-bar.vue
<template>
 <transition name="fade">
  <div class="progress-bar" v-if="isShow">
  </div>
 </transition>
</template>
<script type="text/babel">
 export default {
  data() {
   return {
    isShow: true, // 是否顯示進(jìn)度條
    val: 0, // 進(jìn)度
   }
  },
  props: {
   /**
    * 每10毫秒自增幅度
    */
   step: {
    type: Number,
    default: 5,
   },
   /**
    * 初始值
    */
   initVal: {
    type: Number,
    default: 0,
   },
   /**
    * 到一定進(jìn)度停止
    */
   stopVal: {
    type: Number,
    default: 80,
   },
   /**
    * 進(jìn)度條繼續(xù)到成功
    */
   isOk: {
    type: Boolean,
    default: false,
   },
  },
  mounted() {
   // 初始化后加載進(jìn)度,加載到百分之多少由stopVal決定
   this.val = this.initVal
   let step = this.step
   let timer = setInterval(() => {
    this.val = this.val + step
    this.$el.style.width = this.val + '%'
    // 父組件數(shù)據(jù)加載完前進(jìn)度條最多到stopVal的這個(gè)百分值
    if (this.val >= this.stopVal) {
     clearInterval(timer)
     return
    }
   }, 10)
  },
  watch: {
   /**
    * 監(jiān)聽(tīng)組件props變化決定是否繼續(xù)加載,一般在父組件數(shù)據(jù)加載完后改變此標(biāo)志位
    */
   isOk() {
    let val = this.val
    let step = this.step
    let timer = setInterval(() => {
     val = val + step
     this.$el.style.width = val + '%'
     // 加載到百分百完成
     if (val >= 100) {
      // 關(guān)閉定時(shí)器
      clearInterval(timer)
      // 加載完成關(guān)閉進(jìn)度條
      this.isShow = false
      // 加載完成的回調(diào)
      this.$emit('callback', 'load success')
      return
     }
    }, 10)
   },
  },
 }
</script>
<style lang="stylus" rel="stylesheet/stylus">
 .progress-bar {
  position fixed
  top 0
  height 6px
  width 0
  background-color #999
 }
 .fade {
  &-enter-active, &-leave-active {
   transition: all .3s
  }
  &-enter, &-leave-active {
   opacity: 0
  }
 }
</style>

總結(jié)

以上所述是小編給大家介紹的vue頁(yè)面加載閃爍問(wèn)題的解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Vue?electron零基礎(chǔ)使用教程

    Vue?electron零基礎(chǔ)使用教程

    Electron也可以快速地將你的網(wǎng)站打包成一個(gè)原生應(yīng)用發(fā)布,下面這篇文章主要給大家介紹了關(guān)于Vue和React中快速使用Electron的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Vue3 SFC 和 TSX 方式自定義組件實(shí)現(xiàn) v-model的詳細(xì)過(guò)程

    Vue3 SFC 和 TSX 方式自定義組件實(shí)現(xiàn) v-model的詳細(xì)

    v-model 是 vue3 中的一個(gè)內(nèi)置指令,很多表單元素都可以使用這個(gè)屬性,如 input、checkbox 等,咱可以在自定義組件中實(shí)現(xiàn) v-model,這篇文章主要介紹了Vue3 SFC 和 TSX 方式自定義組件實(shí)現(xiàn) v-model,需要的朋友可以參考下
    2022-10-10
  • 詳解vuex持久化插件解決瀏覽器刷新數(shù)據(jù)消失問(wèn)題

    詳解vuex持久化插件解決瀏覽器刷新數(shù)據(jù)消失問(wèn)題

    這篇文章主要介紹了詳解vuex持久化插件解決瀏覽器刷新數(shù)據(jù)消失問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • Vue中如何動(dòng)態(tài)顯示表格內(nèi)容

    Vue中如何動(dòng)態(tài)顯示表格內(nèi)容

    這篇文章主要介紹了Vue中如何動(dòng)態(tài)顯示表格內(nèi)容問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue3中?provide?和?inject?用法及原理

    vue3中?provide?和?inject?用法及原理

    這篇文章主要介紹vue3中?provide?和?inject?用法及原理,provide?和?inject可以?解決多次組件傳遞數(shù)據(jù)的問(wèn)題,下面文章是具體的用法和實(shí)現(xiàn)原理,具有一定的參考價(jià)值,需要的朋友可以參考一下,希望對(duì)大家有所幫助
    2021-11-11
  • vue項(xiàng)目Luckysheet的使用

    vue項(xiàng)目Luckysheet的使用

    這篇文章主要介紹了vue項(xiàng)目Luckysheet的使用,目前Luckysheet不支持使用npm安裝包,所以只能使用CDN引入依賴,在vue項(xiàng)目的public/index.html文件里引入即可,本文通過(guò)示例代碼給大家詳細(xì)介紹,需要的朋友可以參考下
    2022-08-08
  • Vue.js實(shí)現(xiàn)移動(dòng)端短信驗(yàn)證碼功能

    Vue.js實(shí)現(xiàn)移動(dòng)端短信驗(yàn)證碼功能

    現(xiàn)在的短信驗(yàn)證碼一般為4位或6位,則頁(yè)面中會(huì)相應(yīng)的顯示4個(gè)或6個(gè)文本框.好多網(wǎng)站需求都有此功能,今天小編給大家分享基于vue.js實(shí)現(xiàn)移動(dòng)端短信驗(yàn)證碼功能,需要的朋友參考下吧
    2017-03-03
  • rollup打包vue組件并發(fā)布到npm的方法

    rollup打包vue組件并發(fā)布到npm的方法

    這篇文章主要介紹了rollup打包vue組件并發(fā)布到npm,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • 一篇文章教你實(shí)現(xiàn)VUE多個(gè)DIV,button綁定回車(chē)事件

    一篇文章教你實(shí)現(xiàn)VUE多個(gè)DIV,button綁定回車(chē)事件

    這篇文章主要介紹了VUE多個(gè)DIV綁定回車(chē)事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-10-10
  • vue鼠標(biāo)移入添加class樣式,鼠標(biāo)移出去除樣式(active)實(shí)現(xiàn)方法

    vue鼠標(biāo)移入添加class樣式,鼠標(biāo)移出去除樣式(active)實(shí)現(xiàn)方法

    今天小編就為大家分享一篇vue鼠標(biāo)移入添加class樣式,鼠標(biāo)移出去除樣式(active)實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08

最新評(píng)論

高密市| 汕头市| 安泽县| 禹州市| 安仁县| 恩平市| 武平县| 林西县| 富川| 华池县| 宁德市| 榆树市| 玉龙| 静乐县| 黄龙县| 许昌市| 白河县| 太湖县| 绥化市| 平乡县| 澄迈县| 城市| 潜江市| 沁源县| 祁阳县| 湘西| 北安市| 商洛市| 绥棱县| 揭东县| 大连市| 无锡市| 九龙坡区| 深泽县| 泉州市| 揭东县| 阿坝县| 津南区| 齐齐哈尔市| 蓬莱市| 神农架林区|