新项目中遇到了登录时点击用户协议,进入协议页面让用户阅读,然后返回登录页面时发现原来填写的手机号验证码全都没有了。
解决方案:使用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)
}