react可以直接使用redux库,为什么还需要react-redux?

Why is react-redux required if redux library can be directly used in react?

我试图在我的 React 应用程序中使用 redux,但我发现我可以在我的应用程序中显式使用 redux,而无需使用 react-redux 库。

const redux = require('redux');

我想知道为什么我们的环境中甚至需要 react-redux 库? 有人可以帮我解决这个问题吗?

Redux 是一个 UI 与库无关的状态管理库。 React 是一个与状态管理无关的 UI 库。

React-Redux 是两者之间的粘合剂。你不需要它,但你必须自己实现胶水 (hooks/HOCs)。

react-redux 特别包含 Provider 组件以及 useDispatchuseSelector 挂钩。 如果您正在使用它们,那么您正在使用 react-redux。如果你不使用它们,你会错过很多,所以我建议你这样做。

简而言之:

React-redux 让您的组件在组件呈现的 Redux 状态发生变化时重新呈现。

当然你也可以在你的组件中做 store.getState().foo.bar,但是当状态改变时你必须手动跟踪并重新渲染你的组件。否则,它将永远保持不变,永远不会更新。

如果您改为使用 useSelector(state => state.foo.bar),您的组件将始终在 state.foo.bar 更改时重新呈现,因此您不必自己跟踪。