Javascript 反应组件变得越来越大

Javascript 反应组件变得越来越大,javascript,node.js,reactjs,design-patterns,architecture,Javascript,Node.js,Reactjs,Design Patterns,Architecture,我开始注意到我构建React应用程序的方式存在一个潜在的问题 我喜欢通过一个文件作为容器和多个无状态组件来构建我的组件,这些组件通过props传递数据和事件发射器。此容器将包含所有状态、API调用和事件处理程序。此容器将呈现无状态的子组件 以下是我使用的结构示例: - folder - index.js <-- container file - childComponent1.js - childComponent2.js - childComponent3.js -

我开始注意到我构建React应用程序的方式存在一个潜在的问题

我喜欢通过一个文件作为容器和多个无状态组件来构建我的组件,这些组件通过
props
传递数据和事件发射器。此容器将包含所有状态、API调用和事件处理程序。此容器将呈现无状态的子组件

以下是我使用的结构示例:

- folder
  - index.js <-- container file
  - childComponent1.js
  - childComponent2.js
  - childComponent3.js
  - childComponent4.js
  ...
-文件夹

-index.jsWow!我从未在react应用程序中看到过这么大的文件。你看,在我看来,拥有这么大的文件违背了使用react的目的之一。解决这个问题的最好方法是使用状态管理。上下传递道具(道具钻孔)有很多复杂情况。我建议您实现一些状态管理器,比如context或redux

如果您的要求是:

  • 无状态组件
  • 组件必须共享一个状态(容器状态)
  • 当单个状态中的某些值发生更改时,必须通知某些组件
您应该使用Redux。简单地说,Redux:

  • 创建一个商店(表示应用程序状态的单例/仅一个应用程序) 部分,这是您的选择)其属性可以修改 从动作或您自己的组件中,只要他能够分派到 商店
  • 可以将存储中的更改通知您的组件
  • 你可以选择如何组织商店。它可以由几个简化程序组成,可以与文件系统中的文件夹进行比较

  • 使用前先检查一下它是什么,因为没有共识。一半的React使用它(很久以前的互联网搜索),另一半更喜欢使用内置的React解决方案,如上下文,以避免通过“多层”组件传递数据和功能。

    这是一个很好的问题,但这是一个可以转化为选项列表的问题,这通常不适合堆栈溢出。换句话说,“每个答案都同样有效”(见)。这里面有一个很好的问题。我建议你读一读,并可能重新格式化你的问题。具体来说,你在寻找什么样的答案?只是一个带有设计模式的句子,还是其他什么?什么是可接受的答案?这就是Redux和所有其他州图书馆的目的。