vue设置keepalive不生效怎么解决-mile米乐体育

vue设置keepalive不生效怎么解决

本篇内容主要讲解“vue设置keepalive不生效怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue设置keepalive不生效怎么解决”吧!

设置keepalive不生效

如演示,vue页面导航回退后页面重新刷新了,搜索条件及结果都重置了,对于页面需要频繁切换的系统来说,体验不佳,我们希望页面第一次打开时加载,此后回退不再刷新

查阅了vue米乐app官网登录官网后,发现vue2.0提供了一个keep-alive组件。

1.在app.vue中的设置

2.在router中的index.js设置

利用meta属性

exportdefault[{path:'/',name:'home',components:home,meta:{keepalive:true//需要被缓存的组件},{path:'/book',name:'book',components:book,meta:{keepalive:false//不需要被缓存的组件}]

正常的话这样页面就能缓存并生效了,如果还是不生效

检查这个组件在router文件中的配置name和组件实例中的name不一致,如下面,全局守卫中拿到的to或from的name是从router中对应的路由对象中拿的,而app.js 中的keepalive标签中的exclude是对比的组件实例中的name

使用过程发现,组件的name和router配置的name不一样,keep-alive也无法生效,这里也提供给我们一种思路,如果页面不需要缓存,把name设置不一样就好了(不推荐使用)

keep-alive缓存组件不生效的坑

坑出现背景

在维护公司代码时发现里面写watch route不生效,无法监听子路由的table切换。组件不会缓存,但是全局组件已经做过缓存处理。此处每次进入此table页都会触发created周期。花费大半个小时之后终于找到了问题点

坑的原因

keep-alive缓存时include中的名字必须与组件上的名字完全一致,组件没有写名字或者名字不一致就会导致缓存失效,每次进入组件都触发created生命周期

代码如下

全局组件中

组件中

exportdefault{name:"history",/*此处的name必须有且与include中的一致*/components:{vtable},

到此,相信大家对“vue设置keepalive不生效怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注mile米乐体育,继续学习!

展开全文
内容来源于互联网和用户投稿,文章中一旦含有米乐app官网登录的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系米乐app官网登录删除

最新文章

网站地图