【问题标题】:ReactJS Is it normal when I use Redux all of my components are class componentReactJS 我用redux的时候正常吗 我所有的组件都是类组件
【发布时间】:2019-10-28 13:24:43
【问题描述】:

在我学习react的时候,老师总是提醒我要尽可能多地使用函数式组件,尽量避免使用类组件,少用类组件。是的,那时候很容易。

现在我正在使用 Redux,我几乎不能使用函数式组件,因为从 react-redux 导入的 connect() 只能与类组件一起使用,因此我的应用程序的每个组件都是类组件。这是正常的吗?由于现在 hooks API(使用函数式组件)越来越流行。

【问题讨论】:

    标签: javascript reactjs redux react-redux components


    【解决方案1】:

    嗯,有两件事:

    首先,可以connect a functional component

    其次,您不应该将每个组件都连接到 Redux。实际上,连接到 Redux 的组件越少越好。理想情况下,对于一组组件,您有一个连接到存储的“容器”组件(其中包含所有其他相关状态和逻辑),然后它将这些东西传递给功能/类组件子组件(更侧重于演示)。然后你可以在整个应用程序中拥有一些这样的容器,其余的组件只是传统的 React 组件。

    如果将所有内容直接连接到商店,可能会导致组件的可重用性降低、性能不佳或鼓励不良组件布局/层次结构等问题。

    【讨论】:

    • 我不知道为什么,几周前我尝试在功能组件中使用 connect() 它给我一个错误。但这次我再试一次,它起作用了。至于我更喜欢​​在大多数组件中使用 connect() 的原因,正如这里提到的 stackoverflow.com/a/34307553/9177853
    • 实际上鼓励连接叶组件并提高性能,但与一切一样,使用时应该是合理的。
    • 您可以 connect() 到功能组件,但不仅仅是功能。也就是说,如果你的函数没有返回有效的 jsx,connect 会抛出一个错误,因为它无法更新 UI。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2018-04-07
    • 1970-01-01
    • 2018-11-24
    • 2018-08-07
    • 1970-01-01
    相关资源
    最近更新 更多