react更新到16.7之后有了一个新的功能叫hook
这个东西是替代了原先的setstate函数
- 什么是Hook
钩子是允许从功能组件(function component)“挂钩”React状态和生命周期功能的功能。钩>子在类内部不起作用 - 它们允许你在没有类的情况下使用React。
- state hook
useState返回一对:当前状态值(count)和允许你更新状态的函数(setCount)。你可以从事件处理程序或其他位置调用此函数。这个函数类似于类中的this.setState,但是它不会将旧状态和新状态合并在一起。
useState的唯一参数是初始状态。 在上面的例子中,它是0,因为我们的计数器从零开始。请注意,与this.state不同,此处的状态不必是对象 - 尽管可以是任何你想要的。初始状态参数仅在第一次渲染期间使用。
- effect hook
useEffect函数
当你调用useEffect时,你就在告诉react运行你的‘效果’函数当刷新对DOM的更改后(你可以认为是render之后)。
Effects还可以通过指定返回函数来清理他们。
- 只能在顶层调用Hooks。不要在循环,条件或嵌套函数中调用Hook
仅从React功能组件调用Hooks。 不要从常规JavaScript函数中调用Hook。