vue-router keep-alive


keep-alive是Vue內置的一個組件,它可以使被包含的組件保留狀態,或避免重新被渲染。

在vue-router中,我們使用router-view組件來顯示內容時,你會發現隨着頁面被刷新,之前的頁面並沒有緩存下來,也就是哪怕是一些頁面用戶曾經瀏覽過,但當再次點擊鏈接回到該頁面時,該頁面上曾經被執行過的一些狀態也不會被保存。換句話說,就是一旦用戶使用這個頁面,該頁面對應的組件就會被創建,而一旦用戶離開了這個頁面,該組件就會被銷燬。週而復始。

想要解決這個問題,只需要:

<keep-alive>
  <router-view></router-view>
<keep-alive>

另外,還有兩個生命週期函數與keep-alive密切相關,分別是activated、deactivated,這兩個函數在頁面處於激活狀態或不是激活狀態時被調用,並且這兩個函數只有當頁面使用了keep-alive纔會生效。

keep-alive組件還有兩個屬性,分別是:

  • include :接受一個字符串或者是正則表達式。只有被匹配到的組件會被緩存。
  • exclude :剛好與include功能相反,用法相同。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章