记录下vue keep-alive IOS下无法保存滚动scroll位置的问题

最近 做的项目,遇到了一点小麻烦,就是我一个页面A页面是加载 列表数据 ,B页面是展示详细信息的。A进去B时,缓存A页面。

效果 做出来 后,缓存是缓存数据 了,但是当我A页面的列表数据 好多,要滚动浏览时,点击到B详细信息的再次返回A页面时,

在安卓下面貌似没什么 问题,滚动到哪里 还是到原来 的位置。在IOS下滚动的位置变了,经自己IP6测试滚动位置都是222,

后来用百度各种方法,vuex什么的自己也试过还是不行。。后面还是找到了解决方法,

main.js里面,生成 router时添加以下代码。

    scrollBehavior(to, from, savedPosition) {
        if (savedPosition) {
            return savedPosition;
        } else {
            if (from.meta.saveSrollTop) {
                from.meta.savedPosition = document.documentElement.scrollTop || document.body.scrollTop;
            }
            return { x: 0, y: to.meta.savedPosition || 0 };
        }
    }

 

 

在自己router配置文件里面添加指定 的缓存属性就可以了

posted @ 2019-09-23 11:32  H柷H  阅读(1065)  评论(0编辑  收藏  举报