前言:Redux是React生态中最流行的状态管理库之一,该库不仅适用于React应用程序,也可以用于其他JavaScript框架和库。如果您是Web开发人员,特别是关注React和Redux技术栈的开发人员,则应该对Redux有一定的了解。
简介
Redux是一种JavaScript状态管理库,可让您管理React应用程序中的所有状态。它将状态保存在一个称为“存储”的对象中,并提供了一组规则来更新该存储。通过Redux,您可以创建可预测的应用程序,这意味着您可以使用Redux来处理应用程序的所有状态,从而使状态管理透明。
Redux遵循Flux设计模式,其中单向数据流是一个核心思想。Redux还通过一些中间件来提供额外的功能,例如异步调用API,处理日志和错误等。
Redux三个原则
Redux的工作方式基于三个基本原则:
单一的数据源(Single source of truth)
Redux使用单个状态存储来保存应用程序中的所有状态,并将其命名为“存储”。这个存储是一个JavaScript对象,它将应用程序的状态保存在一个位置,从而使其易于理解和维护。
状态是只读的(State is read-only)
Redux状态是只读的,这意味着您不能在代码的任何其他位置直接更改状态。更改状态只能通过Redux的规则和操作执行。
使用纯函数(Changes are made with pure functions)
Redux改变状态的方式是使用纯函数。这意味着,您无法通过更改状态来改变状态,而是创建一个新的状态对象,并使其成为当前状态的替代品。
Redux核心概念
Redux有四个核心概念:存储,操作,操作员和订阅器。
存储
存储是Redux中的所有状态的单个位置。存储是一个JavaScript对象,它包含所有应用程序的状态。有了存储,您可以随时更改或查询状态。
操作
操作是Redux中更改状态的触发器。操作本身是一个JavaScript对象,该对象具有描述状态更改的信息,例如操作的类型和附加数据。
操作员
操作员是Redux中用于更改应用程序状态的纯函数。操作根据其类型执行操作员函数,并返回表示新状态的对象。
订阅器
订阅器是Redux中的一个功能,您可以用它来监听状态更改。每次触发操作,订阅器都会触发其回调函数。
示例代码
下面是一个简单的Redux的例子,以加深对Redux的理解:
首先,我们需要安装redux
和react-redux
依赖:
npm install --save redux react-redux
然后,我们创建一个名为counter.js
的文件,其中包含以下内容:
-- -------------------- ---- ------- -- ------ -------- ------- ------ - ----------- - ---- ------- ------ - --------- ------- - ---- ------------- ------ ----- ---- ------- ------ -------- ---- ----------- -- ------ ------- ----- --------- - -- -- -- ----- ----------- -- ----- --------- - -- -- -- ----- ----------- -- -- ------ -------- ----- -------------- - ------ - -- ------- -- - ------------------- - ---- ------------ ------ ----- - - ---- ------------ ------ ----- - - -------- ------ ----- - - -- ------ ----- ----- ----- - --------------------------- -- ------ ------- --------- ----- ------- ------- --------------- - -------- - ----- - ------ ---------- --------- - - ---------- ------ - ----- ---------- ------------ ------- ------------------------------ ------- ------------------------------ ------ - - - -- --- ----- -- ----- ----- --------------- - ------- -- - ------ - ------ ----- - - -- --- -------- -- ----- ----- ------------------ - ---------- -- - ------ - ---------- -- -- ---------------------- ---------- -- -- --------------------- - - -- ------- --------- -- ----- ----- ---------------- - ------------------------ ---------------------------- -- ------ --- ---------------- --------- -------------- ----------------- -- ------------ ------------------------------- -
在上面的示例中,我们定义了一个计数器组件和一些操作,然后使用Redux创建了一个存储并将其绑定到组件。我们还将操作转换为组件的属性,以便可以从组件中调用它们。
最后,我们使用Provider
组件将React应用程序的根元素包装在其中,并将store
传递给Provider
。我们将ConnectedCounter
组件传递给Provider
作为子代,以便它可以访问store
并访问其属性。
结论
Redux是管理应用程序状态的非常好的工具。使用Redux,您可以将所有状态保存在单个位置中,并按照Redux的标准和规范实现更改状态的方式。
如果您正在考虑使用Redux,建议您仔细阅读官方文档以了解更多信息。Redux文档非常详细且对于初学者来说很友好,因此您应该很快就能开始熟悉Redux的工作方式。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67516bd28bd460d3ad898b03