Hooks
useState
useEffect
useContext
Rules of Hooks
- 只在top level调用Hooks,不要在loops、conditions或者嵌套函数中调用
- 只在React函数组件中调用Hooks,不要在普通Javascript函数中调用(或者在你自定义的Hooks中调用)。
自定义Hooks
可以解决之前需要通过借助heigher-order-components
和render props
才能解决的组件间状态逻辑的复用。
一个叫useFriendStatus
的Hook:
1 | import React, { useState, useEffect } from 'react'; |
使用useFriendStatus
:
1 | // FriendStatus.js |
这些组件间的状态是完全独立的。Hooks复用状态逻辑,而不是状态本身。每次调用自定义Hook都会生成完全独立的状态。