这篇文章主要介绍了vue如何实现列表页缓存的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何实现列表页缓存文章都会有所收获,下面我们一起来看看吧。提了一个需求,希望公众号内的商城能够像app一样,从商品详情页跳转至列表页及其他列表页时,可以实现列表页缓存(数据不刷新、位置固定到之前点的商品的位置)本来想着scrollBehavior应该可以满足,但是实际操作中发现:如果列表带着分页,位置是不会定位到点击的位置的在网上转了一圈,终于找到适合自己的方法——beforeRouteLeave注:beforeRouteLeave只对一级页面起作用,不适用于children中的其他二级或其他级别的页面以上是准备工作,接下来 可以步入正题了:找到入口挂载页面:App.vue 在router-view外部包裹一个keep-alive的标签因为不是所有页面都需要缓存,所以把需要缓存的页面中加入name值,并将name值加入keep-alive中当然,仅仅是这些,是不能实现缓存的,刚开始我是学着网上的方法,这样写的,当从列表点入详情页时,就将列表页的keepalive值,赋为true(实现缓存)但是后期甲爸爸发现一个bug: 当我从列表一点击进入详情之后,如果直接从详情页,点击进入别的店铺列表页,即列表二,最新的列表页内展示的商品列表是之前的数据,并没有变为最新的店铺列表内容 ,即列表二页面展示的还是列表一的商品要看解决办法的直接来这 ↓↓↓↓↓↓首先摒弃上面的列表页面的方法第一步:找到商品详情页,最为主角之一,我在这里用到了beforeRouteEnter、beforeRouteLeavebeforeRouteEnter:进入路由之前执行的函数(拿到列表一的路由)beforeRouteLeave:离开路由之前执行的函数(拿到列表二的路由)通过这两个钩子,可以成功的拿到事件的另外两位主角路由(列表一、列表二)在详情页中,当离开该页之前,在beforeRouteLeave内进行列表一、列表二的路由比较若两路由相同,则跳转目的页面(to.meta.keepAlive)值为true,列表页面进行缓存(比如从详情页返回的时候)若两路由不同,则跳转目的页面发生了变化(比如从鞋帽列表——>鞋子商品——>鞋子列表),则鞋子列表页面不需要缓存,需要刷新获取最新的鞋子列表数据第二步:处理事件的第二主角——列表页面这里我仅用到了beforeRouteEnter这个钩子中,我们可以拿到当前页面的keepAlive值这个值是在详情页中就已经给定的如果是true,表示缓存,否则为不缓存(刷新)防止页面一直刷新,变成死亡函数,我们要在data中声明一个变量isRefresh如果当前页to.meta.keepAlive值不为true,且值存在,则需刷新页面防止页面一直刷新,设置缓存变量isRefresh,免费云主机域名值为true(表示需要刷新)当to.meta.keepAlive值不为true且isRefresh值为true,页面刷新,且isRefresh赋值为false,即关闭刷新vm.goods=[];是当页面跳去新的列表页刷新之前,会出现短暂的列表展示,为了避免不必要的误导,在检测到是跳转到新的列表页时,我将列表页的goods列表情况,视觉感受会好一些,因项目不同而异,不需要可以去掉,多张页面之间跳转,判断是否需要缓存或刷新获取新数据,就是这样了。Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快等优势,Vue中页面使用的是局部刷新,不用每次跳转页面都要请求所有数据和dom,可以大大提升访问速度和用户体验。关于“vue如何实现列表页缓存”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“vue如何实现列表页缓存”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。
这篇文章主要介绍了php常用系统函数方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php常用系统函数方法有哪些文章都会有所收获,下面我们一起来看看吧。 php有自带的方法,其常用方法有:1、strlen方法,用于获取字符…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。