为什么会有人希望把一个函数成一类反应JS
我刚开始学习从官方网站反应js和有这一步在本教程中,为了使工作时钟,你把一个函数成为一个班级。我的问题是,既然可以用更简单的方式完成,为什么有人会那样做呢?为什么会有人希望把一个函数成一类反应JS
当你想获得所有的React.Component
功能,如props
和state
,life cycle methods,ref
和much more,你需要从extend
React.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>
只有一件事,你可以访问到的道具也宣称的功能。 – RMontes13
不,你不能因为没有'props'函数只有在规则正常参数。我们把它称为'props'作为惯例,当你将它传递给JSX元素,但是在你的函数组件中时,它们只是像其他函数接收到的常规参数。 –
在发生反应,则需要一类部件,当你想阵营生命周期方法(或裁判DOM元素)。所以,差异在于React如何使用函数或类。 –
当你需要,而无需为它创建一个状态(被称为无状态组件),它更容易用函数来创建它来创建一个组件。但是当创建一个需要状态的组件时,你将不得不使用类来完成这个任务。 – Atef