vue 無痕刷新

最近遇到一個需求,須要刷新當前頁面來更新數據,網上找了不少方法,在這裏作個總結。 vue

這裏主要記錄三種方法,分別是:強制刷新、僞造刷新、無痕刷新。ide

強制刷新

window.location.reload(),原生 js 提供的方法; this

this.$router.go(0),vue 路由裏面的一種方法; spa

這兩種方法均可以達到頁面刷新的目的,簡單粗暴,可是用戶體驗很差,至關於按 F5 刷新頁面,頁面的從新載入,會有短暫的白屏。code

僞造刷新

經過路由跳轉的方法刷新,具體思路是點擊按鈕跳轉一個空白頁,而後再立刻跳回來router

// index.vue 首頁
this.$router.replace('/empty')

// empty.vue 空白頁
created() {
    this.$router.replace('/')
}

當點擊刷新按鈕時地址欄會有快速的地址切換過程路由

無痕刷新

先在全局組件註冊一個方法,用該方法控制 router-view 的顯示與否,而後在子組件調用;rem

v-if 控制 <router-view></router-view> 的顯示;it

provide:全局註冊方法;io

inject:子組件引用 provide 註冊的方法;

App.vue:

當前組件:

當點擊按鈕時全部頁面從新渲染,體驗最好

相關文章
相關標籤/搜索