React/Redux 概念与服务器调用请求
React/Redux concept Vs server call requests
我想知道在数据库中使用大状态(商店)和 sql 请求之间的最佳设计方法是什么。
假设您有一个 Todo CRUD 应用程序。您可以在 Redux 实现中保存 Todos 列表。如果您想对这些 TODO 进行复杂的统计,最好的方法是什么:Reducers 或 sql 请求?
例如,您想获取当月的所有待办事项:
- Reducers/store接近
您可以从商店获取所有待办事项列表,并按日期过滤待办事项以获取当月的所有待办事项。
- 优点:
易于管理的 CRUD 操作,商店中的一个状态更改(todos 列表)
低 client/server 流量
- 缺点
客户端的业务逻辑
大数据处理的客户端开销
- Sql请求方式:
数据库中的复杂请求以获取这些待办事项并将状态 'currentMonthTodos' 保存在商店中。在这种情况下,您可以从 currentMonthTodos 状态获取当前月份的 Todos 列表
- 优点:
服务器端的业务逻辑
减少大数据的页面加载时间
- 缺点
CRUD 操作的状态管理不善
高网络流量
店铺规模扩大
Let's say you have a Todo CRUD application. You can save the Todos list in store within Redux implementation. What is the best approach if you want to make complex statistics on those TODOs: Reducers or sql requests?
通常,您使用 Redux 进行的现实生活中的应用程序都是中型或大型的。简单的 CRUD 应用程序,您可以用任何一种方式完成。
我想当您提到数据库(SQL 请求)时,您考虑过 Restful 编程。
对于非常简单的应用程序,Redux 模式没有那么大的意义,除非您需要高级视觉效果。
但是,小型应用程序确实会随着时间的推移而增长,并且可以通过添加更多组件快速变成中等规模。
Redux 的想法在我们有大量交互的应用程序组件的情况下非常有用。在 Redux 中,这些将被称为容器组件,它们不同于简单的表示组件,后者也被称为无状态功能组件。
有 2 个组件 A 和 B,您只有几个可能的更新链。
A 将更新 B,B 将更新 A,或 self-update(此处不包括来自应用程序外部的可能更新)。
只要三个组件相互作用,我们就有更多可能的链。
而且组件越多,事情就越复杂。我们使用 Redux 模式消除了可能的指数交互复杂性。 Redux 模式类似于 IDispatch
、IObservable
如果您使用其他编程语言的这些接口。
一个用于吐出动作,另一个用于进入商店内存在的听众链。
我们与 GUI 应用程序中的事件驱动方法非常相似——当您移动鼠标时,您会获得事件。
在 React 组件中创建动作。有时动作很多。事实上,在某些情况下您可能会执行很多操作,因此如果您的设计不当,应用程序将冻结。
通常情况下,组件应该限制操作,React 中有很好的解决方案。
那么 React Redux 中的组件是什么?一方面,组件是动作调度器,另一方面,它们获取道具、可能的上下文、可能的应用程序状态甚至本地状态。最后,组件可能具有渲染逻辑。有时组件只是容器。
我只是写这个来表示 Redux 模式的初始复杂性,而 Restful 应用程序在设计上很简单。
我认为这是你应该考虑的主要因素。可能不需要将 Redux 用于永远不会增加复杂性的琐碎 TODO 应用程序,因此您可以使用 Restful 应用程序。
我想知道在数据库中使用大状态(商店)和 sql 请求之间的最佳设计方法是什么。 假设您有一个 Todo CRUD 应用程序。您可以在 Redux 实现中保存 Todos 列表。如果您想对这些 TODO 进行复杂的统计,最好的方法是什么:Reducers 或 sql 请求?
例如,您想获取当月的所有待办事项:
- Reducers/store接近
您可以从商店获取所有待办事项列表,并按日期过滤待办事项以获取当月的所有待办事项。- 优点:
易于管理的 CRUD 操作,商店中的一个状态更改(todos 列表)
低 client/server 流量 - 缺点
客户端的业务逻辑
大数据处理的客户端开销
- 优点:
- Sql请求方式:
数据库中的复杂请求以获取这些待办事项并将状态 'currentMonthTodos' 保存在商店中。在这种情况下,您可以从 currentMonthTodos 状态获取当前月份的 Todos 列表- 优点:
服务器端的业务逻辑
减少大数据的页面加载时间 - 缺点
CRUD 操作的状态管理不善
高网络流量
店铺规模扩大
- 优点:
Let's say you have a Todo CRUD application. You can save the Todos list in store within Redux implementation. What is the best approach if you want to make complex statistics on those TODOs: Reducers or sql requests?
通常,您使用 Redux 进行的现实生活中的应用程序都是中型或大型的。简单的 CRUD 应用程序,您可以用任何一种方式完成。
我想当您提到数据库(SQL 请求)时,您考虑过 Restful 编程。
对于非常简单的应用程序,Redux 模式没有那么大的意义,除非您需要高级视觉效果。
但是,小型应用程序确实会随着时间的推移而增长,并且可以通过添加更多组件快速变成中等规模。
Redux 的想法在我们有大量交互的应用程序组件的情况下非常有用。在 Redux 中,这些将被称为容器组件,它们不同于简单的表示组件,后者也被称为无状态功能组件。
有 2 个组件 A 和 B,您只有几个可能的更新链。
A 将更新 B,B 将更新 A,或 self-update(此处不包括来自应用程序外部的可能更新)。
只要三个组件相互作用,我们就有更多可能的链。
而且组件越多,事情就越复杂。我们使用 Redux 模式消除了可能的指数交互复杂性。 Redux 模式类似于 IDispatch
、IObservable
如果您使用其他编程语言的这些接口。
一个用于吐出动作,另一个用于进入商店内存在的听众链。
我们与 GUI 应用程序中的事件驱动方法非常相似——当您移动鼠标时,您会获得事件。
在 React 组件中创建动作。有时动作很多。事实上,在某些情况下您可能会执行很多操作,因此如果您的设计不当,应用程序将冻结。
通常情况下,组件应该限制操作,React 中有很好的解决方案。
那么 React Redux 中的组件是什么?一方面,组件是动作调度器,另一方面,它们获取道具、可能的上下文、可能的应用程序状态甚至本地状态。最后,组件可能具有渲染逻辑。有时组件只是容器。
我只是写这个来表示 Redux 模式的初始复杂性,而 Restful 应用程序在设计上很简单。
我认为这是你应该考虑的主要因素。可能不需要将 Redux 用于永远不会增加复杂性的琐碎 TODO 应用程序,因此您可以使用 Restful 应用程序。