我最近发现了Redux个.一切看起来都很好.使用Redux而不是Flux有什么缺点、问题或妥协吗?谢谢

推荐答案

这里是Redux的作者!

我想说的是,你将使用它做出以下妥协:

  • You'll need to learn to avoid mutations. Flux对Mutations 数据没有偏见,但Redux不喜欢Mutations ,许多补充Redux的包都假设你永远不会Mutations 状态.您可以使用仅适用于开发人员的软件包(如redux-immutable-state-invariant、use Immutable.js)来强制执行这一点,或者相信您自己和您的团队可以编写非变异代码,但这是您需要注意的事情,这需要是您的团队接受的一个有意识的决定.

  • You're going to have to carefully pick your packages.虽然Flux明确地不试图解决"附近"的问题,比如undo/redopersistenceforms,但Redux有一些扩展点,比如中间件和存储增强器,它已经产生了young but rich ecosystem.这意味着大多数软件包都是新 idea ,还没有得到足够的使用量.几个月后,你可能会依赖于一个显然是个坏主意的东西,但现在还很难说.

  • You won't have a nice Flow integration yet. Flux currently lets you do very impressive static type checks这是Redux doesn't support yet.我们会到达那里,但需要一些时间.

我认为第一个问题是初学者面临的最大障碍,第二个问题对过于热情的早期采用者来说可能是个问题,第三个问题是我个人的恼怒.除此之外,我不认为使用Redux会带来Flux可以避免的任何负面影响,有些人说它甚至比Flux有一些好处.


另见我对upsides of using Redux的回答.

Reactjs相关问答推荐

为什么我的功能React组件中的setInterval只更改一次值?

Redux向后端发送请求时出现钩子问题

使用useReducer时,props 未从父级传递给子或孙级

TypeError:b不是React.js中的函数错误

如何处理具有REACTION-REDUX状态的Nextjs路由警卫

基本react 应用程序正在触发两次Use Effect

使用自动播放的视频组件呈现登录页面时出现JEST测试错误

在迭代状态时无法读取未定义的属性(读取 map )

React 错误: 只能用作 元素的子元素,从不直接渲染.请将您的 包裹在

useRef.current.value 为空值

当`useSelector`回调中的属性值更新时,将会使用更新后的值吗?

为什么 createSlice 中的 reducer 不能以不同的方式改变状态?

无法访问 usefocusEffect 中 const 的更新状态

Stripe Checkout:是否可以创建不自动续订的订阅?

在react 中从外部 api 渲染列表

在复选框中react 检索选中的值

setState 改变对象引用

如何在react 日历中自定义带有圆形边框的日期项?

如果 URL 已随功能组件更改,则取消刷新

CORS 政策:无访问控制允许来源-AWS 和 Vercel