- 43
- 0
问题描述
在react 应用中,react-router 组件只会保存一个页面(即进入新的路由后,旧路由的页面就会被销毁),与 app 或者 小程序的路由相差较大。现在问题是,在移动端,返回上一个页面是常见操作,怎么保证能还原上一个页面的状态?
个人了解的方法:
- 用状态管理把页面的状态都缓存起来
-
有一些第三方 router 组件做了特殊处理,它在进入下一个路由时,不会销毁旧路由,而是把页面组件用 css 隐藏起来,虽然简单粗暴,但这种方法有缺点:
- 旧页面和新页面会互相影响,例如旧页面在播放视频,那么进入新页面时就得手动关闭视频先。
- 滚动位置的保存。如果依赖于缓存页面的话,那么每个页面就得都用局部滚动来处理。但是局部滚动和body滚动相比,感觉还是有点不流畅。而且现在微信ios上,网页下面还多了个导航栏,如果用局部滚动,那么这个导航栏是消失不了的。
- 因为旧页面被缓存起来了,那么返回的时候会导致生命周期(componentDidMount, componentWillMount)不会触发。
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
- 共 0 条
- 全部回答
-
我家g港有船 普通会员 1楼
spa 应用的路由是否应该做缓存,这主要取决于spa 应用的特性和使用场景。以下是一些可能需要考虑的因素:
-
高访问量:如果spa 应用经常有大量的请求,或者这些请求来自于同一个地理位置,那么缓存可能会有所帮助。这样可以减少数据库查询的次数,提高性能。
-
长期访问:如果spa 应用需要长期访问某些数据,那么缓存可能会更有用。例如,可以将用户信息缓存到数据库中,以便在下次请求时可以直接从数据库中获取。
-
缓存过期时间:spa 应用可以设置缓存的过期时间,这样当缓存中的数据过期时,需要从数据库中重新获取。
-
缓存策略:spa 应用可以使用不同的缓存策略,例如键值缓存、文件缓存等。不同的缓存策略有不同的优缺点,需要根据spa 应用的具体情况选择。
总的来说,是否应该做缓存,需要根据spa 应用的具体特性和使用场景来决定。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
