为什么会有人希望把一个函数成一类反应JS

为什么会有人希望把一个函数成一类反应JS

问题描述:

我刚开始学习从官方网站反应js和有这一步在本教程中,为了使工作时钟,你把一个函数成为一个班级。我的问题是,既然可以用更简单的方式完成,为什么有人会那样做呢?为什么会有人希望把一个函数成一类反应JS

+1

在发生反应,则需要一类部件,当你想阵营生命周期方法(或裁判DOM元素)。所以,差异在于React如何使用函数或类。 –

+0

当你需要,而无需为它创建一个状态(被称为无状态组件),它更容易用函数来创建它来创建一个组件。但是当创建一个需要状态的组件时,你将不得不使用类来完成这个任务。 – Atef

当你想获得所有的React.Component功能,如propsstatelife cycle methodsrefmuch more,你需要从extendReact.Component
你只能做与class(在ES6

编辑

只有一件事,你可以访问到的道具也声明一个函数

这是不正确的其实,无状态组件只是返回jsx功能。它们是正常的,接受参数的常规函数​​。
我们有时使用props关键字作为参数只是作为一种习惯或惯例,但你可以使用任何你想要的关键词。

实施例:

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>

+0

只有一件事,你可以访问到的道具也宣称的功能。 – RMontes13

+0

不,你不能因为没有'props'函数只有在规则正常参数。我们把它称为'props'作为惯例,当你将它传递给JSX元素,但是在你的函数组件中时,它们只是像其他函数接收到的常规参数。 –