我当前场景是,产品搜索页/search?a=b&c=d与产品详情页/item/123都是在同一个router-view;我想要效果是,列表页跳转详情页,再跳回来,列表页不刷新两个页面路由如下children:[{path:'search',name:'search',meta:{title:'商品搜索',keepAlive:true},component:_import('xx')},{path:'item/:skuid',name:'detail',meta:{title:'商品详情',keepAlive:false},component:_import('xxx')}]搜索页面监听$route(如下代码),一有变化就加载产品列表,watch:{'$route':{handler:'getProduct',immediate:true}}搜索一下网上很多提到用keep-alive结合mate.keepAlive实现,但我不明白原理,并且下面写法并不能实现想要效果第一次用前端框架,很多概念都不怎么理解,看文档有点懵逼我的思路是不是错了,或者是写法错误,希望得到指点,拜托了
2 回答
森林海
TA贡献2011条经验 获得超2个赞
题主是想要有keep-alive的缓存效果,但是如果数据发生变化,就更新列表,是不是?其实,kepp-alive钩子的触发顺序created->mounted->activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。vuekeep-alive生命周期描述所以,题主,只要把create钩子中的获取数据逻辑放置到activated中即可,而且是完全的响应式
添加回答
举报
0/150
提交
取消