應用provide與inject刷新Vue頁面方法

方法1:直接調用函數

將整個頁面重載, 以下兩種都可以

1.window.location.reload()

2.this.$router.go()

方法2:采用provide / inject(靜刷新)

在高階函數中聲明一個reload刷新函數

<template>
  <div id="app" v-if="show"></div>
</template>
<script>
export default {
  // 控制顯示/隱藏, 實現刷新
  data () {
    return {
      show: true
    }
  },
  // 把刷新的方法傳給低階組件
  provide () {
    return {
      reload: this.reload
    }
  },
  methods: {
    // 高階組件定義刷新方法
    reload () {
      this.bol = false
      this.$nextTick(() => {
        this.bol = true
      })
    }
  }
}
</script>

在低階組件中使用刷新函數

<template>
  <div></div>
</template>
<script>
export default {
  inject: ['reload'],
  methods: {
    // 低階組件, 刷新
    fun () {
      this.reload()
    }
  }
}
</script>

優勢比較

  • 方法1中直接調用函數, 會導致整個網站刷新,會浪費性能些,用戶體驗也不好; 大型網站這樣刷新下,需要等幾秒瀏覽器左上角可以看到刷新的動畫;
  • 方法2中采用provide / inject, 用戶不會感覺到刷新, 而且刷新的頁面內容范圍可控制, 相對浪費性能會少很多

以上就是應用provide與inject刷新Vue頁面方法的詳細內容,更多關於Vue頁面刷新的資料請關註WalkonNet其它相關文章!

推薦閱讀: