的基本区别是,当一个Component
,阵营将运行/添加其所有Lifecycle methods。当您的组件中有state
时,这会很有用。当你使用这个组件时,React将创建一个React Component Instance
,它将会添加所有的生命周期方法和其他钩子。
class App extends React.Component{
...
}
在某些情况下,你不会用state
。在这些情况下,添加所有这些生命周期方法是不必要的。因此,React为您提供了一种创建仅具有render
的组件的方法。它被称为PureComponent
。当您使用此功能时,无需创建新的Component Instance
,因为此处没有生命周期方法。它只是一个函数,可以使用props
并返回React元素。
class App extends React.PureComponent{
...
}
希望这有助于!
[更新]
什么是Component
和Component Instance
?
从技术上讲,React的Component
是class
或function
。
例子:
class App extends React.Component{
...
}
//stateless component
const App = (props) => {
...
}
当您使用component
,它会被实例化,更像new App()
。但是,React本身以不同的方式进行。
例如:
render(){
return <App/> //Instance of the component App
}
实例是因为需要,每个实例可以单独执行。实例是原始类的副本。
简单的答案是,components
将是一个Class
和component Instance
将是类的复制/实例,将在render
希望这解释了使用!
这似乎相关但不回答问题:http://stackoverflow.com/questions/27112274/multiple-instances-of-same-react-component – jhegedus
简单而简单的是:无状态组件是一个没有得到类似'componentDidMount'和'componentWillReceiveProps'的生命周期事件;它实际上只是呈现你通过它的任何道具。如果您创建了一个扩展了'React.Component'的''类,那么您现在已经创建了一个可以访问生命周期事件的有状态组件。 – lux
经过一段时间的答案是 - 对我来说:它是在OO相同,组件是类/类型,组件实例是一个类型为“Component”的对象,就像在Java等... – jhegedus