Javascript 反应组件变得越来越大
我开始注意到我构建React应用程序的方式存在一个潜在的问题 我喜欢通过一个文件作为容器和多个无状态组件来构建我的组件,这些组件通过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 -
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和所有其他州图书馆的目的。