Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。在未来甚至可以完全覆盖并替换class的写法。
    注意:hook只能使用在函数组件中,class组件不支持,所有hook默认约定名称用use开头

    Hook 就是 JavaScript 函数,但是使用它们会有两个额外的规则:

    • 只能在函数最外层调用 Hook。不要在循环、条件判断或者子函数中调用。
    • 只能在 React 的函数组件中调用 Hook。不要在其他 JavaScript 函数中调用。
    1. import React, { useState } from 'react';
    2. let isName = true;
    3. function Example() {
    4. // 报错:React Hook "useState" is called conditionally. React Hooks must be called in the exact same order in every component render
    5. // 只能在函数最外层调用 Hook。不要在循环、条件判断或者子函数中调用。
    6. const [count, setCount] = useState(0);
    7. if(isName){
    8. const [name, setName] = useState('名字');
    9. isName = false;
    10. }
    11. return (
    12. <div>
    13. <p>You clicked {count} times</p>
    14. <button onClick={() => setCount(count + 1)}>
    15. Click me
    16. </button>
    17. </div>
    18. );
    19. }