Vue路由跳轉到新頁面之後,返回舊頁面保持狀態不變

新項目中遇到了登錄時點擊用戶協議,進入協議頁面讓用戶閱讀,然後返回登錄頁面時發現原來填寫的手機號驗證碼全都沒有了。

解決方案:使用keep-alive

在vue.app中添加keep-alive標籤。
<template>
<div id="app">
<keep-alive>
<router-view v-if="$route.meta.keepAlive" />
</keep-alive>
<router-view v-if="!$route.meta.keepAlive" />
</div>
</template>


在router文件下的index.js中,添加meta。
{
path: '/Load',
name: 'Load',
component: Load,
meta:{
keepAlive:true
}
},

在跳轉的新頁面中,添加beforeRouteLeave
beforeRouteLeave(to,from,next){
to.meta.keepAlive = true
next(0)
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章