为了账号安全,请及时绑定邮箱和手机立即绑定

vue keep-alive 返回到原来的页面 仍然调用了created和mounted方法

vue keep-alive 返回到原来的页面 仍然调用了created和mounted方法

繁花如伊 2019-05-24 15:55:59
实现从B页面跳转到A页面,A页面需要缓存我的代码:A页面路由配置:{path:'tea_audit',meta:{keepAlive:true,},component:_import('teacher/tea_audit')}B页面路由配置:{path:'infoDetail/:id/:type',meta:{keepAlive:true,},hidden:true,component:_import('teacher/tea_infoDetail')}router-view:但是从B页面使用router-link返回A页面时,A页面执行了created和mounted方法返回为什么呀,A到B的时候确实是执行created->mounted->activated,退出时触发deactivated的,为什么回来A执行了created->mounted->activated,求解
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

按道理说,组件设置了keep-alive后,再次进入的时候,就不会执行mounted钩子函数了,我也遇到了相同的问题,后来使用beforeRouteEnter路由守卫,来判断进入的路由路径做不同操作了
                            
查看完整回答
1 反对 回复 2019-05-24
?
慕神8447489

TA贡献1780条经验 获得超1个赞

vue是单页面,路由只是控制元素的显隐,所以不存在缓存。meta只是一个可以读取的对象而已,不是设置http链接的。路由切换旧的路由组件必定会destroy。如果想只执行一次这个钩子可以判断这个页面时候进来过,如果已经访问过就不执行。
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 7039 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信