我应该在 React 中使用什么类型的组件:函数式组件还是类基组件?

IT技术 reactjs react-native react-component react-functional-component
2021-05-25 10:32:14

让我感到困惑的是,功能组件和基于类的组件现在都可以使用StateProps但在不同的实现中。我更喜欢基于类的组件,因为我是 angular 开发人员,我发现使用这些类型的组件更舒服。但是我搜索了这个,许多专家说最好尽可能多地使用功能组件。

我想知道当有人申请 React 开发人员职位时,这对科技公司是否真的很重要。他们会看这些东西吗?由于它们在实现上有很大不同......

4个回答

方法组件类组件之间存在一些差异

方法组件:

在 React 中声明组件的最简单方法。您只需要声明一个返回jsx. 例子

const MessageComponent = ({ name }) => { return <h1>Hi {name}</h1> }

除了引入 React Hooks 之外,您还可以使用方法组件完成大部分功能

componentDidUpdate => useEffect(fn)

componentDidMount => useEffect(fn, [])

state => useState()

类组件:

组件的健壮版本。使用类组件,您可以做更多事情。 Props默认情况下,在类上下文中this.props您可以为组件使用状态、局部变量。您可以添加许多共享相同状态的类的方法。

export default class MessageComponent  extends Component {
  state = {
    message: 'default message'
  }

  renderMessage = () => {
    return (
      <h1>
        Hi {this.props.name}
      </h1>
    )
  }

  render() {
    return (
      <div>
        {this.renderMessage()}
      </div>
    )
  }
}

类组件 VS 方法组件

主要的理由不使用类成分是当你只需要一个简单的组件象buttoncard或代表性的组件。如果您的组件不需要复杂的状态,那么复杂的逻辑method component最适合您。

功能组件是新标准。让它们保持轻量级和可读性更容易。在高质量的代码中,任何组件都不应该需要如此多的逻辑,以至于它总是超过 30-50 行,这样可以保持简洁明了,考虑到这一点,类组件只是大而笨重

最初使用类组件,React 仍然支持。根据 React 开发人员的说法,没有停止支持他们的计划。在现有的代码库中,没有理由花费资源将类组件转换为功能组件。

话虽如此,功能组件是新代码的更好选择。它们还支持 React Hooks,它是基于类的生命周期方法的替代品。

如果您正在编写新代码,可能会专注于编写功能组件。但是,如果您正在申请工作,则现有代码库很有可能同时具有类和函数组件。您需要对两者都感到满意,并能够将其中一个转换为另一个。

好吧,组织现在倾向于使用最新的,并雇用与任何新事物产生共鸣的人。

具有新 Hooks 的功能组件也取代了生命周期方法

  • 更容易管理
  • 更大的兼容性,尤其是typescript
  • 更少和更干净的代码