需求描述:
有一个巨长的form表单A页面(大概有287项这么多)用户填写完毕,核验通过会跳转进入下一B页面。用户进入B页面会发现之前填写的信息有误,想回退A页面进行修改,然后A页面信息没有保存,需要重新填写287项内容(此处手动狗头吐血)。
需求分析:
1.页面数据缓存 keepAlive
2.指定页面B页面进入A页面才进行数据缓存 路由守卫
3.非指定页面数据要进行重置
代码实现
//公共路由入口设置 一般为app.vue页面
<keep-alive>
<router-view v-if="$route.meta.keepAlive" class="router-view">
</router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive" class="router-view"></router-view>
//A页面路由配置 keepAlive为true即为需要缓存的组件 设置isBack属性,用来标示页面是否是从B页面返回的。
{
name: '首页',
path: 'index',
component: Index,
meta: {
keepAlive: true,
isBack: false
}
},
2.指定页面进入A页面才进行数据缓存 路由守卫
beforeRouteEnter(to, from, next) {
if (from.path == "/detail") {
to.meta.isBack = true;
} else {
to.meta.isBack = false;
}
next();
},
3.非指定页面数据要进行重置
//因我的项目中data中有用到全局变量需把this传入初始化data
Object.assign(this.$data, this.$options.data.call(this))
//如果没有使用this可不传
Object.assign(this.$data, this.$options.data())
//某单一标量重置
this.search = Object.assign({}, this.$options.data().search);
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!