hook学习

364 阅读1分钟

与class对比优势

  1. 学习成本低;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>
  );
}
  1. class业务逻辑分散;例如:检测id变化,调用API
  2. class复用困难;class中复用代码,一般是通过HOC实现的,例如:
export default connect(mapStateToProps, { setDetailDefination })(withRouter(DataTarget))

时常会有莫名其妙的问题,例如withrouter 与 connect 顺序问题 hook,复用逻辑则比较简单

useAsync封装