React-Redux 存储或将道具中的 api 传递给组件哪个更好

React-Redux store or Passing the api in props to the components which is better way

到目前为止,我只是感到困惑。我正在为需要一定数量的 API 调用开发一个 React 应用程序。所以我只是混淆了是在组件中调用 API 并通过 props 将 dats 传递给所需的组件,还是使用 redux thunk 获取 api 并存储到 React 存储中并获取通过在需要时分派操作来获取所需数据。

建议将不胜感激:)

我强烈建议不要使用 React-Redux。原因如下

  1. 为什么要在应用程序中添加一个仅用于传递状态的库
  2. Redux自带开销代码(写action等)
  3. React 的 Context API 可以解决你的问题(在 react 库中已经可用)
  4. React Composition 是将状态传递给子组件的另一种方式。
  5. Redux 也有维护开销。

总而言之,你的 React 可以单独管理你所有的状态通信问题。您不需要另一个库来进行状态管理。

注意:每当我说 React 时,我指的是 React 更新版本。反应 16.8+

调用API肯定会在组件中完成。像这样:

const Component = () => {
  useEffect(() => {
    const fn = async () => {
      await apiCall()
    }
    fn()
  }, [])
}

但是你的问题在于你应该把它存放在哪里。

这很简单:

  1. 如果您获取的数据将在整个应用程序中使用,那么 Redux 是一个不错的选择。它还带有数据持久性,使用 redux-persist (https://github.com/rt2zz/redux-persist) 只需很少的努力,因此它不仅具有您可以访问的全局对象。

特点:

一个。坚持 b.任何地方都可以访问全局状态 C。使用 Redux 开发工具增强调试

  1. 如果您只想避免 prop drilling,那么 React.Context 是一个不错的选择
  2. 如果您的道具只有 drilling 2 或 3 级,请不要过度使用 Context