基于类的组件与功能组件有什么区别(Reactjs)

Pra*_*n.G 9 javascript reactjs

我是React的新手,我想清楚地知道要使用哪一个,当涉及到组件我会看到有两种类型.

功能组件:

import React from 'react'

const userInput = (props) => {
    return(
        <div>
            <input type='text' onChange={props.nameChanged} value={props.username}></input>
        </div>
    )
};

export default userInput;
Run Code Online (Sandbox Code Playgroud)

基于类的组件:

import React, { Component } from 'react';
import './App.css';
import UserOutput from './UserOutput/UserOutput';
import UserInput from './UserInput/UserInput';

class App extends Component {

  render() {
    return (
      <div className="App">
        <h3>Assignment Output :</h3>
        <ul>
          <li>
            <UserOutput 
            username={this.state.Usernames[0].username}>
            Welcome to React!
            </UserOutput>
            <UserInput 
            nameChanged={this.nameChangedHandler}>
            </UserInput>
          </li>
                      </ul>
      </div>
    );
  }
}

export default App;
Run Code Online (Sandbox Code Playgroud)

我开始读到我们应该总是尝试使用Functional组件,因为它有助于某些事情并且还听说我们应该尽可能避免使用基于类的组件.

我很困惑哪个是对的,哪个不是.

为什么要尝试尽可能使用功能组件,有什么好处?

我们什么时候应该去寻找功能组件,什么时候不去,不清楚.

Thi*_*gar 7

类组件

  • 基于类的组件使用ES6类语法。它可以利用生命周期方法。

  • 如您在示例中所见,您在上面给出的Class组件是从React.Component扩展的。

  • 在这里,您必须使用此关键字来访问在类组件内部声明的道具和功能。

功能组件

  • 与基于类的函数相比,功能组件更简单。

  • 功能组件主要关注应用程序的UI,而不关注行为。

  • 更精确地说,这些基本上是类组件中的render函数。

  • 功能组件不能具有状态,也不能使用生命周期方法。

  • 你的答案不再有效,你可以使用钩子来管理状态、上下文和挂载/卸载生命周期。 (5认同)