溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue如何實(shí)現(xiàn)局部刷新功能

發(fā)布時(shí)間:2021-04-02 11:12:32 來(lái)源:億速云 閱讀:312 作者:小新 欄目:web開發(fā)

這篇文章主要介紹vue如何實(shí)現(xiàn)局部刷新功能,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

利用Vue里面的provide+inject組合

使用2.2.0 新增的provide / inject控制<router-view>的顯示隱藏

在App.vue中使用provide

//App.vue
<template>
  <div>
    <router-view v-if="isRouterAlive"></router-view>
  </div>
</template>

<script>
  export default {
    name: 'App',
    data () {
      return {
        isRouterAlive: true
      }
    },
    provide(){ //提供
      return {
        reload: this.reload
      }
    },
    methods: {
      reload(){
        this.isRouterAlive = false
        this.$nextTick( function () {
          this.isRouterAlive = true
        })
      }
    }
  }
</script>

在使用局部刷新的組件中使用inject

<script>
  export default {
    name: 'myComponent',
    data () {
      return {}
    },
    inject: ['reload'], //注入
    methods: {
      myCallBack(){
        // ...
        this.reload() //局部刷新
      }
    }
  }
</script>

其他的刷新頁(yè)面方法

  • window.location.reload() //有白屏

默認(rèn)參數(shù)是 false,它會(huì)用 HTTP 頭 If-Modified-Since 來(lái)檢測(cè)服務(wù)器上的文檔是否已改變;

如果文檔已改變,reload() 會(huì)再次下載該文檔;

如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。

參數(shù)為 true,無(wú)論文檔的最后修改日期是什么,它都會(huì)繞過(guò)緩存,從服務(wù)器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時(shí)按住 Shift 健的效果是完全一樣

  • this.$router.go(0) //有白屏

先跳轉(zhuǎn)到一個(gè)空白頁(yè)面再跳轉(zhuǎn)回來(lái) //雖不會(huì)一閃,但是能看見路由快速變化

//需要頁(yè)面刷新的地方,跳轉(zhuǎn)到一個(gè)空白頁(yè)
this.$router.push('/emptyPage')

//空白頁(yè)
beforeRouteEnter (to, from, next) {
   next(vm => {
    vm.$router.replace(from.path)
   })
}

以上是“vue如何實(shí)現(xiàn)局部刷新功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI