代码之家  ›  专栏  ›  技术社区  ›  sotos bic

为什么有人想在react js中将函数转换为类

  •  1
  • sotos bic  · 技术社区  · 7 年前

    我刚刚从官方网站开始学习react js,教程中有一个步骤,为了制作一个工作时钟,你把一个函数转换成一个类。我的问题是,既然可以用更简单的方法来完成,为什么会有人这么做?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Sagiv b.g    7 年前

    当你想访问所有 React.Component props state , life cycle methods , ref much more ,你需要 extend 从…起 反应组成部分
    你只能用一个 class (英寸 ES6 )

    编辑

    有一件事,你也可以通过声明函数来访问道具

    事实并非如此,无状态组件只是返回的函数 jsx . 它们是接受参数的常规函数。
    我们有时使用 道具 关键字作为参数,就像习惯或惯例一样,但你可以使用任何你想要的关键字。

    例子:

    const MyHeader = (myParams) => (
      // no props here
      <h2>{myParams.value}</h2> 
    );
    
    class MyApp extends React.Component{
      render(){
        const {message} = this.props; // i get access to this.props as i extended React.Component
        return(<MyHeader value={message} />);
      }
    }
    
    ReactDOM.render(<MyApp message="Hello!" />, document.getElementById('root'));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
    <div id="root"></div>