Reactjs 如何更好地组织组件交互?
我正在使用React构建SPA,并具有以下UI组件结构:Reactjs 如何更好地组织组件交互?,reactjs,Reactjs,我正在使用React构建SPA,并具有以下UI组件结构: 应用程序(带导航栏和页脚的基础布局) EventsIndex(从API加载事件数据) 过滤器栏(显示当前过滤器设置的常用组件) EventsTable(显示桌面的事件数据) 事件记录(显示手机的事件数据) 其他索引 EventsTable和EventsCordion有许多通用逻辑,如分页、筛选器和排序处理程序 我必须将处理程序从子组件(EventsTable和EventsAccordion)提升到父EventsIndex。但对
- 应用程序(带导航栏和页脚的基础布局)
- EventsIndex(从API加载事件数据)
- 过滤器栏(显示当前过滤器设置的常用组件)
- EventsTable(显示桌面的事件数据)
- 事件记录(显示手机的事件数据)
- 其他索引
- EventsIndex(从API加载事件数据)
我应该使用Redux吗?如果没有,什么时候最好使用它?您可以遵循容器类型实现-这意味着如果组件之间存在一些公共逻辑,则可以将它们封装在组件中,作为这两个组件的容器,并提供必要的公共逻辑/数据 例如,在你的例子中,它将是
- EventsIndex (Load Events data from API)
- FilterBar (common components where current filter settings is shown)
- EventContainer (where common logic resides for both your components)
- EventsTable (show Events data for desktop)
- EventsAccordion (show Events data for mobiles)
其中,EventContainer
提供了分页、筛选和排序处理程序等常用工具
希望这有帮助:)我们在团队环境中遵循的最佳方法(而且是自以为是的;可能不适合每个人的场景)是将应用程序分解为逻辑结构
- src
- Utils (reusable methods such as sorting, pagination, etc)
- UI (Reusable UI components such as buttons, modals, etc)
- Services (API Calls to the database, further divided by entities /users /posts etc)
- Components (Hierarchy of components)
- EventsIndex (uses the service directory to make API calls)
- EventsIndexContainer (if following container encapsulation pattern)
- EventsTable
- EventsAccordion
如果处理程序不是特定于组件的,我建议将其移动到utils文件夹(这样您就有了一个单一的责任模式和一个地方来修改您的逻辑,而不是在两个地方)并将处理程序从EventsIndex组件或EventsIndexContainer组件传递到表和accordion,后者进一步封装了逻辑组件(我的许多同事都喜欢后者) React是关于组件的,我想说,在开始设计React应用程序时,最重要的一点是很好地构建组件 有不同的方法可以很好地构建组件,下面是一些方法:
> HORD(高阶组件):当你有一些可重用的功能时,考虑创建一个HOO/
请检查:
请检查此来源:Thx,你能解释一下在哪些情况下我应该使用Redux吗?@nuT707我已经编辑了我的答案,请检查一下什么时候经常使用REDUXThx!很好的解释和有用的链接!很乐意帮助