📜  不推荐使用 getdefaultmiddleware redux 工具包 - Javascript (1)

📅  最后修改于: 2023-12-03 14:48:50.811000             🧑  作者: Mango

不推荐使用 getdefaultmiddleware redux 工具包

介绍

Redux 是一个非常流行的 JavaScript 应用程序存储库,它提供了一个可预测的状态管理方法。对于中小型应用程序,Redux 最初提供了一个默认的 middleware 工具包。

默认的 middleware 工具包是一个集合,它可以让您在 Redux 中注册并使用中间件。然而,在使用过程中,它会遇到一些问题,这些问题可能会导致您的应用程序出现不可预测的行为。

问题
异步操作问题

默认的 middleware 工具包的主要问题是它不能很好地处理异步的操作。虽然您可以使用 Redux Thunk 或 Redux Saga 等第三方库来解决这些问题,但这些库也可能导致更多的问题,如副作用和难以调试。

顺序问题

默认的 middleware 工具包会使注册的所有 middleware 按顺序运行。然而,如果一个 middleware 意外错误或阻塞了一个请求,它可能会导致其它 middleware 失败或阻塞。

性能问题

默认的 middleware 工具包在处理多个 actions 时可能会变得非常低效。它与 Redux 的 store dispatch 方法紧密耦合,没有很好地支持并发。

可扩展性问题

最后,由于默认 middleware 工具包不能很好地处理异步操作,您可能需要安装和使用 Redux Thunk 或 Redux Saga 等第三方库。这将增加您的项目的复杂性,使它更难以维护和扩展。

解决方案

为了解决上述问题,我们建议您使用 redux-observable,它是一个基于 RxJS 的 middleware 库,可以帮助您处理任意数量和类型的异步操作,并将其与 Redux store 的状态一起使用,而无需复杂的代码。

redux-observable 还支持您在 Redux store 和其它第三方库之间构建一个统一的异步操作框架,从而提供更好的性能和可扩展性。

总结

在实际项目中,我们建议您不要使用默认的 middleware 工具包,而是使用更加灵活和可扩展的解决方案,如 redux-observable。这样,您的项目将更加可维护,易于开发,同时可获得更好的性能和可扩展性。

# 不推荐使用 getdefaultmiddleware redux 工具包

## 介绍

Redux 是一个非常流行的 JavaScript 应用程序存储库,它提供了一个可预测的状态管理方法。对于中小型应用程序,Redux 最初提供了一个默认的 middleware 工具包。

默认的 middleware 工具包是一个集合,它可以让您在 Redux 中注册并使用中间件。然而,在使用过程中,它会遇到一些问题,这些问题可能会导致您的应用程序出现不可预测的行为。

## 问题

### 异步操作问题

默认的 middleware 工具包的主要问题是它不能很好地处理异步的操作。虽然您可以使用 Redux Thunk 或 Redux Saga 等第三方库来解决这些问题,但这些库也可能导致更多的问题,如副作用和难以调试。

### 顺序问题

默认的 middleware 工具包会使注册的所有 middleware 按顺序运行。然而,如果一个 middleware 意外错误或阻塞了一个请求,它可能会导致其它 middleware 失败或阻塞。

### 性能问题

默认的 middleware 工具包在处理多个 actions 时可能会变得非常低效。它与 Redux 的 store dispatch 方法紧密耦合,没有很好地支持并发。

### 可扩展性问题

最后,由于默认 middleware 工具包不能很好地处理异步操作,您可能需要安装和使用 Redux Thunk 或 Redux Saga 等第三方库。这将增加您的项目的复杂性,使它更难以维护和扩展。

## 解决方案

为了解决上述问题,我们建议您使用 redux-observable,它是一个基于 RxJS 的 middleware 库,可以帮助您处理任意数量和类型的异步操作,并将其与 Redux store 的状态一起使用,而无需复杂的代码。

redux-observable 还支持您在 Redux store 和其它第三方库之间构建一个统一的异步操作框架,从而提供更好的性能和可扩展性。

## 总结

在实际项目中,我们建议您不要使用默认的 middleware 工具包,而是使用更加灵活和可扩展的解决方案,如 redux-observable。这样,您的项目将更加可维护,易于开发,同时可获得更好的性能和可扩展性。