前言
在 React 16.8 之前,函数组件只能是无状态组件,也不能访问 react 生命周期。hook 做为 react 新增特性,可以让我们在不编写 class 的情况下使用 state 以及其他的 react 特性,例如生命周期。接下来我们便举例说明如何使用 hooks 来模拟比较常见的 class 组件生命周期。
constructor
class 组件
class Example extends Component {
constructor() {
super();
this.state = {
count: 0
}
}
render() {
return null;
}
}
复制代码
函数组件不需要构造函数,可以通过调用 useState 来初始化 state
function Example() {
const [count, setCount] = useState(0);
return null;
}
复制代码
componentDidMount
class 组件访问 componentDidMount
class Example extends React.Component {
componentDidMount() {
console.log('I am mounted!');
}
render() {
return null;
}
}
复制代码
使用 hooks 模拟 componentDidMount
function Example() {
useEffect(() => console.log('mounted'), [