javascript - ReactJS - 列表、详细信息、新建、编辑页面 - 何时使用 Redux 加载数据表单 API?
问题描述
我的应用程序中有多个功能集合,每个集合都有一个列表页面,其中包含一个列出所有这些集合的表格、一个单击表格条目之一的详细信息页面、一个编辑页面和一个用于创建新条目的页面。
集合的状态由 Redux 管理并从后端获取。在这种情况下,从后端获取数据的常见模式是什么?
- 它是否应该仅由列表页面 à la 获取
fetchAllObjects
,然后在移动到新页面时传递(如 props.history.push + state)并通过向后移动再次传递(例如,在编辑、保存和返回详细信息页面时,所以显示更新的数据) - 还是每个子页面都应该再次获取数据以获得最新版本?意思是获取列表页面中的所有对象,但也可以
fetchOneObject
在详细信息和编辑页面中执行,因此我不需要传递历史状态。
解决方案
你可以用 redux 做这两件事。但是考虑一下哪种情况会更优化。想想你必须对后端进行的调用次数。
在第一种情况下,您可以在 componentDidMount 时进行一次调用,然后当您在页面中移动时,您可以简单地使用该数据。即使您进行了任何更新,您也可以在您的 redux 商店中进行更新。这样您就可以保持本地 redux 存储和后端存储同步,而无需任何进一步的调用。
但是考虑第二种情况,如果你每次都调用后端,那么使用redux是没有用的。
最后一个建议,在使用 redux 时不要传递 props,你可以简单地将那个组件连接到 redux。道具传递很容易,但当你有大量道具时,它会变得更加忙碌。
推荐阅读
- python - Python数据加密
- javascript - 角度材质对话框未打开
- laravel - Laravel 数据库关系
- javascript - 在 mouseover javascript 事件下的 jQuery click 事件表现得很奇怪
- angular - 当从 api 获取数据时,Angular 2+ 用 ngFor 填充 html 表
- pharo - 如何在 Pharo 中创建两天之间的日期数组或 OrderedCollection?
- google-cloud-platform - 函数会随机崩溃并出现“默认凭据”错误
- angular - Angular 4 - 将项目从一个列表移动到另一个列表
- swift - UIToolBar 按钮闪烁
- content-management-system - 静态站点生成器上的动态内容