如果我将React应用程序使用数据库,那么redux有什么用?

时间:2019-01-16 08:17:26

标签: javascript database reactjs firebase react-redux

所以最近我开始在react应用程序中实现数据库(就像现实世界中的任何应用程序一样)。我的问题是为什么需要redux?我的意思是,如果您有数据库,则可以直接将信息推送到数据库中,然后从那里检索信息。您无需将其保存为状态。 (新来的反应,redux。这只是我的观点)

3 个答案:

答案 0 :(得分:1)

Redux是一种状态管理工具。 Redux用于客户端状态,默认情况下仅在内存中。它不是到数据库数据的1:1映射,而是让视图分派操作然后更新存储状态,以便其他视图可以对那些数据更改做出反应。借助Redux,您的应用程序状态将保存在一个存储中,每个组件都可以从该存储访问其所需的任何状态。

答案 1 :(得分:0)

在使用数据库时使用Redux有多个原因。例如,您不会在数据库中保存易失性状态。您会看到不应在选项卡之间共享的所有内容都是易变状态,例如路由或组件状态(例如打开的菜单或表单输入)。

答案 2 :(得分:0)

数据库和状态管理工具(例如Redux)有不同的关注点(尽管它们操纵的是同一件事:数据)。

客户端使用您的应用程序时,它将首先从数据库中检索数据。此时,该数据需要保留在内存中才能显示。

您可以决定使用组件范围的React Component内部状态。现在,如果您打算使用刚刚在同一组件内检索到的数据,那就很好了。

随着应用程序变得越来越复杂,有时您需要在整个应用程序的不同位置使用数据(例如,如果检索用户信息,则可能需要在配置文件页面的标题中显示数据)等)。

使用React Component内部状态可能会很棘手,因为(如果您已经尝试过React的话)您知道传递数据是通过将props传递给子组件完成的。

需要在不同组件之间共享数据的常见解决方案是在应用程序中使用to lift the state up,因此可以将其传递给需要它的不同组件。

这可能很乏味,并且随着您的应用的增长而容易出错。

Redux是解决该问题的解决方案。通过创建可以在应用程序中的任何位置(除其他事项外)访问的全局状态,它有助于使您在整个应用程序中共享的状态清晰明了。