猿问

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

实现从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,求解
繁花如伊
浏览 7040回答 2
2回答

犯罪嫌疑人X

按道理说,组件设置了keep-alive后,再次进入的时候,就不会执行mounted钩子函数了,我也遇到了相同的问题,后来使用beforeRouteEnter路由守卫,来判断进入的路由路径做不同操作了

慕神8447489

vue是单页面,路由只是控制元素的显隐,所以不存在缓存。meta只是一个可以读取的对象而已,不是设置http链接的。路由切换旧的路由组件必定会destroy。如果想只执行一次这个钩子可以判断这个页面时候进来过,如果已经访问过就不执行。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答