新項目中遇到了登錄時點擊用戶協議,進入協議頁面讓用戶閱讀,然後返回登錄頁面時發現原來填寫的手機號驗證碼全都沒有了。
解決方案:使用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)
}