与class对比优势
- 学习成本低;class组件封装了各种生命周期,不同的版本之间,生命周期又有所不同; hook学习成本低,掌握了 useState 和 useEffect,80% 的事情就搞定了
import React, { useState } from 'react';
function Example() {
// 声明一个新的叫做 “count” 的 state 变量
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
- class业务逻辑分散;例如:检测id变化,调用API


- class复用困难;class中复用代码,一般是通过HOC实现的,例如:
export default connect(mapStateToProps, { setDetailDefination })(withRouter(DataTarget))
时常会有莫名其妙的问题,例如withrouter 与 connect 顺序问题 hook,复用逻辑则比较简单
