在线文档教程

Redux FAQ:常规(General)

Redux FAQ:常规(General)

目录

  • 什么时候应该使用 Redux?

  • Redux 只能与 React 一起使用吗?

  • 我是否需要特定的构建工具才能使用 Redux?

一般

什么时候应该使用 Redux?

作为 React 早期贡献者之一的 Pete Hunt 说:

你会知道什么时候需要 Flux。如果你不确定是否需要,你则不需要。

同样,Redux 的创始人之一Dan Abramov说:

我想修改这个:在使用 vanilla React 之前,请不要使用 Redux。

一般来说,当你有合理数量的数据随时间变化时,使用 Redux,你需要一个单一的事实来源,并且你发现像把所有东西放在顶层React组件的状态这样的方法已经不够了。

但是,了解使用 Redux 带来的折衷也很重要。它的设计不是编写代码的最短或最快的方式。它旨在帮助回答“何时进行了某种状态改变以及数据从何而来?”这个问题,并且具有可预测的行为。它通过要求您遵循应用程序中的特定约束来实现:将应用程序的状态存储为普通数据,将更改作为普通对象进行描述,并使用不变应用更新的纯函数处理这些更改。这通常是关于“样板”的投诉的来源。这些约束需要开发人员付出努力,但也需要开放一些额外的可能性(例如存储持久性和同步)。

如果您刚刚学习 React,您应该首先关注 React,然后在您更好地理解 React 以及 Redux 如何适合您的应用程序时查看 Redux。

最后,Redux只是一个工具。这是一个很棒的工具,使用它有一些很好的理由,但也有你可能不想使用它的原因。对工具做出明智的决策,并理解每个决策所涉及的权衡。

更多信息

文档

  • 介绍:动机

讨论

Redux 只能与 React 一起使用吗?

Redux 可以用作任何 UI 层的数据存储。最常见的用法是使用 React 和 React Native,但是有 Angular,Angular 2,Vue,Mithril 等可用的绑定。Redux 只是提供了一个可以被任何其他代码使用的订阅机制。也就是说,与声明式视图实现相结合时,它可以从状态变化中推断出 UI 更新,如 React 或可用的类似库之一,这是非常有用的。

我是否需要特定的构建工具才能使用 Redux?

Redux 最初是用 ES6 编写的,并用 Webpack 和 Babel 编译生成 ES5。无论您的 JavaScript 构建过程如何,您都应该可以使用。Redux 还提供了 UMD 构建,可以在没有任何构建过程的情况下直接使用。counter-vanilla案例展示了终极版基本 ES5 使用包括作为<script>标记。正如相关的请求说:

新的 Counter Vanilla 示例旨在消除 Redux 需要 Webpack ,React,热重载,传奇,动作创建者,常量,Babel,npm,CSS模块,装饰器,流利的拉丁语,Egghead订阅,博士学位或超越期望OWL水平。不,它只是HTML,一些手工<script>标记和简单的旧DOM操作。请享用!