主题
自定义 Hooks 函数
介绍
自定义 Hook 是以 use
打头的函数,通过自定义 Hook 函数可以用来实现逻辑的封装和复用
示例
jsx
import useToggle from '../../hooks/useToggle'
function App() {
const { value, toggle } = useToggle()
return (
<div>
{value && <p>hello</p>}
<button type="button" onClick={toggle}>
Click
</button>
</div>
)
}
export default CustomHooks
js
import { useState } from 'react'
function useToggle() {
const [value, setValue] = useState(true)
function toggle() {
setValue(!value)
}
return {
value,
toggle,
}
}
export default useToggle
React Hooks 使用规则
只能在组件中或者其他自定义 Hook 函数中调用
jsximport useState from 'react' useState() // ❌ function App() { return <div>App</div> }
只能在组件的顶层调用,不能嵌套在 if、for、其他函数中
jsximport useState from 'react' function App() { if (flag) { useState() // ❌ } return <div>App</div> }