32.无状态组件 vs 普通组件 - yiqunkeke/react-jianshu-shangguigu-zty GitHub Wiki
1.普通组件
import React, {Component} from 'react'
class TodolistUI extends Component {
render() {
return (
// ...
)
}
}
export default TodolistUI
当组件只有render函数时,则称之为无状态组件。无状态组件就是一个函数。例如,上面的 TodolistUI组件是一个UI组件,在这个组件中,只有一个render函数。则可以使用另一种写法。把TodolistUI写成一个函数。
2.无状态组件
const TodolistUI = (props) => {
return (
// ...
)
}
这样就构建出了一个无状态组件。当一个普通的组件只有一个render函数时,我们完全可以通过一个无状态组件来替换掉这个普通的组件。
3.无状态组件 vs 普通组件 的优势:
-
无状态组件的性能比较高。
-
因为普通组件中 TodolistUI 是一个类,这个类中含有一些生命周期函数。所以它执行的时候,既要执行生命周期函数,又要执行render,所以它执行的东西要远比一个函数执行的东西多的多。
-
所以建议大家,如果一个普通组件中只有一个render函数,建议用无状态组件来定义它。性能最优。
-
通常我们会在定义UI组件时,使用无状态组件来定义这个UI组件。也不是绝对。