背景
简单来说就是,我在使用 vue-cli 4.5.15 写 移动web,现在想要达到软件一样的浏览效果(操作流程、效果)。
问题详细描述
软件的操作流程:
1、在 A 页面点击一个按钮进入一个列表页(B 页面),然后我滑动,看到自己感兴趣的点进去进入详情页(C 页面)。
2、看完返回列表页(C 到 B),列表页还是我进入详情页前的位置,我接着往下滑然后点击进入详情页查看循环。
3、看腻了,从 B 到 A。过了一会我又想看了,又从A 到 B,这时 B 不再是我退出时的位置,而是初次进入的样子。
总结
简单来说就是 前进保存、后退删除。(这里方便演示所以是三个页面,但我要的是一个全局的解决办法)
我的理论上的解决方法
使用 keep-alive 组件,以及 include 参数,include 支持字符串和正则,这里用字符串就ok。
我们比作数组应该好理解些:我们的初始位置在0,一直往前走,数组慢慢添加到10。往后走到9,10被删除。返回首页回到0,那么0之后的全部删除只缓存0。
但是这样就会有两个问题:
1、这样就要考虑 tabbar 页面的问题,甚至是子级 tabbar。
解决:tabbar肯定是在一起的,那么我们判断。1、同级tabbar跳同级tabbar不删除。2、非tabbar跳tabbar,向右判断直到不是tabbar页之后的全部删除
2、所有的组件都得起名字,以及路由那边也得写上配合判断。
我想要达到的结果
这样理论上好像是解决了问题,但是当业务复杂时,还是很复杂的。
还有更简单的方法吗?或者说这个方法可行吗?