为什么redux比简单对象更好?

时间:2018-03-14 12:36:33

标签: javascript reactjs redux

我正在学习Redux。据我所知,React中的Redux帮助我们管理React应用程序的状态。但为什么我不能只使用空对象来保存所有必要的状态变化?

例如,我有两个子组件的根组件。

<App>
   <Label/>
   <Button/>
</App>

Inside Label我有一个{numb:1}状态和一个增加麻木的函数

increase() {
    setState(prevState => {
        return {numb: prevState.numb + 1}
    });
}

在这个组件的顶部,我导入了Store.js文件,该文件导出了我用来存储所有变更状态函数的空对象。

import Store from './Store'

在Label的构造函数中,我只是从该组件中分配函数

Store.plusOne = this.increase

这有助于我在Button组件中导入Store文件,并使用增加功能来增加Label的麻木属性。

<button onClick={Store.increase}>Plus One to Label's numb</button>

那么,如果我可以将任何状态更改函数存储在单独的对象中,那么使用Redux有什么意义呢?

1 个答案:

答案 0 :(得分:0)

几年前,当我开始使用Redux时,我有同样的感觉。 &#34;男人,这看起来过于复杂了#34;但后来我意识到,虽然没有使用redux,但我在做同样的事情,但在做事情时效率更低,更容易出错,并且手动&#34;。

Redux带有一些强大的辅助函数。第一个是connect,它可以帮助您将这些状态属性添加到组件中。您可以将组件连接到您的状态。您不必担心其他任何事情,在一个地方更改状态,并观察更改流经您的应用程序。

因为你&#34; plop&#34; (是的,技术术语......咳嗽)从您的州到组件的props所需的所有属性,您自动获得组件在状态发生变化时刷新的属性。即使使用纯函数或PureComponent可能对性能非常有益。

你可以这样看。如果您希望React + Redux自动重排您的应用程序:使用Redux。如果您手动想要更新对象并手动强制应用程序重排,请使用自定义状态对象。

话虽这么说,我认为redux在更大的应用程序中是有意义的,其中多个组件依赖于相同的状态。如果你只需要在一个组件或一个带有简单按钮的演示应用程序中呈现单个数据,那么您可以使用一个小对象保持简单。