首先,我想實現在返回頁面時,頁面不進行重新整理,比如我原先選擇的第四頁,返回後顯示了第一頁
想到使用keepAlive快取元件,大部分推薦的方法為這樣,但是不生效
<keep-alive v-if="$route.meta.keepAlive"> <router-view /> </keep-alive> <router-view v-else />
正確的使用方法
<keep-alive> <router-view v-if="$route.meta.keepAlive" /> </keep-alive> <router-view v-if="!$route.meta.keepAlive" />
原因
透過v-if來判斷是否生成keep-alive,當列表頁面符合條件時,記憶體快取了元件狀態。當跳轉到詳情頁時,不符合條件,由於v-if是掛載到keep-alive標籤上,會把之前keep-alive的列表頁面進行銷燬,再次進入到列表會重新建立