全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

在React应用中管理页面状态的实用方法

发布时间:2022-09-23 14:09:46
发布人:syq

  通过使用历史记录 API 来存储状态,在 React 应用中管理页面状态。  

  React 中有许多状态管理库,例如 Redux、重匹配、反冲,当然,您可以使用 React 上下文来管理页面状态。这些都非常有用,但是存在一个问题 - 当我们刷新页面时,页面状态将丢失,并且页面状态将不可共享。例如,如果你在 React 应用列表页中筛选某些数据,并希望与可以直接看到结果的人共享页面 URL,则无法仅使用状态管理来实现它。

在React应用中管理页面状态

  本文将介绍如何使用历史记录 API 来增强 React 状态,以便可以共享状态,并且在刷新页面后页面显示不会更改。

  具有网址的持久状态

  大多数 npm 模块使用本地存储来保存 React 应用程序中的页面状态,如还原持久化 — npm (npmjs.com)、使用持久状态 — npm (npmjs.com)。通过使用localStorage,我们可以存储复杂数据或大数据,并且在刷新页面时,我们可以恢复状态,这对用户来说是一种更好的体验,尤其是在移动页面上。

  对于大多数列表页面,我们只需要保留一些状态的过滤动作,我们就可以使用URL来存储状态。假设我们只需要存储一个字段,我们可以使用这个 React 钩子:

41

  使用钩子函数后,它将获取 URL 查询以初始化筛选器变量,我们可以使用 setData 来存储状态,并将状态存储为 URL。filter

  通过使用 URL 来保持状态,我们可以共享链接(CodePen 不会共享,因为它使用 iframe 来呈现结果页)。

  结论

  我们可以使用本地存储来持久化状态,也可以使用URL来做到这一点。如果我们需要与某些预设的过滤器/选项共享页面URL,则使用URL来存储状态将很方便。如果状态数据非常大,我们可以将其保存到后端SQL,并带有一个可以与其他人共享的短ID。

相关文章

机器学习中Inference和predict的区别是什么?

机器学习中Inference和predict的区别是什么?

2023-10-15
kd-tree和ball-tree在算法实现原理上有什么区别?

kd-tree和ball-tree在算法实现原理上有什么区别?

2023-10-15
nn.Linear()和nn.Embedding()有什么区别?

nn.Linear()和nn.Embedding()有什么区别?

2023-10-14
敏捷开发和迭代式开发的根本区别是什么?

敏捷开发和迭代式开发的根本区别是什么?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取