reactjs - 反应设计模式
问题描述
我有一个事件组件和一个列出事件的容器类。我正在努力在这两个选项之间做出决定
让容器类获取 event_id 列表,将 event_id 传递给每个事件组件,并让每个事件组件获取自己的数据。
让容器类获取事件对象列表,并将事件对象作为道具传递给事件组件。
用户可以编辑事件,因此事件组件需要能够处理更新。
使用选项 1,我只需要对其余 api 进行一次提取,但是容器类必须在编辑时管理每个事件的状态。
使用选项 2,我将不得不为每个事件发出 fetch 请求,但随后每个事件对象都可以管理自己的状态。
我应该实施哪个选项(或任何建议的第三个选项)?
解决方案
我是首选……最好总是减少您的要求。在反应中,最好让您的设计,例如..更少的容器..更多的组件
我的意思是,如果您可以在一个容器中管理所有组件,这将是一个更好的解决方案
另一种情况..也许您必须转移状态或在事件组件之间进行交互..如果您让每个组件自己获取数据,这将更加困难
所以我选择第一个
更新:
它会与相同的事件处理程序一起显示吗?如果是..比其他选择会更好
我的意思是:有时你有一个带有事件处理程序的组件..但是这个事件在每个父组件中的处理方式都会不同(比如当你有一些样式的自定义按钮组件时..但是一键式事件的处理方式会有所不同,具体取决于父组件)..所以首选会更好
但如果它每次都以相同的方式处理相同的事件,那么第二选择会更好
推荐阅读
- google-cloud-platform - 无法使用 CDAP RESTAPI 上传数据融合插件 json 文件
- azure - 使用 VS 2019 将 .NET Core 3.1 Web 应用发布到 Azure App Service Linux,显示欢迎屏幕
- r - 将数据结构从长更改为宽,反之亦然
- csv - 处理数组并按 csv 中的一个字段对行进行分组
- angular - 部分匹配路由到同一组件
- python - 如何通过python将已知的一维数组转换为二维数组但不使用numpy?(只使用基本的python语言))
- ios - 无法执行为 iOS 配置 MSAL 的步骤 3
- sql - 将“现在”行添加到持续时间计算
- apache-beam - Apache Beam Python 窗口化和 GroupByKey
- windows - 如何编写 powershell 脚本来知道磁盘是基本的还是动态的?