我试图了解何时使用React功能组件与类以及从docs读取它们并不真正详细说明。你能否想要一个类的特定功能来制作一个组件,你能给我一些下面的主要例子吗?
功能组件功能较弱,但更简单,功能类似 只有一个render()方法的类组件。除非你需要 功能只在课堂上提供,我们鼓励您使用功能 而不是组件。
答案 0 :(得分:12)
您只需要class
组件:
componentDidMount
等。答案 1 :(得分:10)
如果我们使用Redux,将会有两种组件:
Redux的创作者Dan Abramov撰写了一篇文章Presentational and Container Components:
演示组件作为功能组件编写,除非它们需要状态,生命周期挂钩或性能优化。
即使我们不使用Redux。我们还可以将组件分离为演示组件和容器组件。
Cory House的文章React Stateless Functional Components: Nine Wins You Might Have Overlooked让我了解功能组件的优势,功能组件更多:
但功能组件是无状态的,这是它的极限。
但幸运的是,大部分时间,我们都不需要国家。
无状态功能组件对dumb/presentational components很有用。演示组件侧重于UI而不是行为,因此避免在演示组件中使用状态非常重要。相反,状态应由更高级别的“容器”组件管理,或通过Flux / Redux /等管理。无状态功能组件不支持状态或生命周期方法。这是一件好事。为什么?因为它可以防止懒惰。
看,当你匆忙时,总是很有可能将状态添加到表示组件中。这是一种破解功能的快捷方式。由于无状态功能组件不支持本地状态,因此在懒惰时刻不能轻易入侵某些状态。因此,无状态功能组件以编程方式强制执行以保持组件纯净。您被迫将状态管理放在它所属的位置:在更高级别的容器组件中。
答案 2 :(得分:3)
功能组件
示例:
const Foo =()=>
{
return <Text>Hi there!</Text>
}
班级组件
示例:
class Foo extends Component {
render(){
return <Text>Hi There!</Text>
}
}