可以使用 localstorage 而不是 Redux 或 Context API 吗?

GBe*_*tez 11 javascript local-storage reactjs redux

我使用 React 已经有一段时间了,一段时间后我开始问自己,为什么不将我的组件需要共享的每条数据都存储在 localstorage 中,而不是使用 Redux。Redux 需要如此多的样板文件,而 localstorage 如此简单。你可以说你不能在 localstorage 中存储对象,但你可以 JSON.stringfy 它们,并且在恢复时只需解析它们。因此,可能有一些我无法正确理解的东西,因为 Redux 被大量使用,而 localstorage 通常仅用于保存您不希望在刷新时丢失的数据等等。

Mag*_*med 5

当我开始开发 React 应用程序时,这个问题就在我脑海中浮现。在 localStorage 上使用 redux 的原因有很多。但至少

  1. 将 Redux 与 react-redux 一起使用不仅用于存储数据。不要忘记更改状态会重新渲染所有监听该状态的组件。而这正是 react-redux 所做的。
  2. 来自 localStorage 的 stringfy / parse 将使您的应用程序(大规模)变慢,并且在更改状态时也不会同步所有组件。

  • `更改状态将重新渲染所有侦听该状态的组件。这确实是 redux 的作用。`不,这就是 React-Redux 的作用。Redux只是事件存储,对React一无所知。 (4认同)

Dan*_*nha 5

Redux 和 localStorage 实际上有不同的用例。您将使用 Redux 跨多个组件管理应用程序状态。

您将用于在浏览器中保留属性以供以后使用的本地存储。问题是 localStorage 上的任何更改都不会反映在您的应用程序中。你必须手动完成。


Muh*_*Ali 1

答案就在你的问题中,是的,本地存储仅用于在浏览器中存储数据,而 redux 和 context api 解决一些不同的问题。它将数据层与视图分开,以便轻松管理数据状态。如果应用程序不是很大,那么您应该考虑使用 Context API。您可以阅读这篇文章以获取更多信息。请注意,对于较大的数据集,字符串化和解析本身是一项相当繁重的操作。