自定义的Hook其实就是封装一个函数,在这个函数里会使用useState,useRef等Hook,进行一系列操作,最后return 一个读写接口 。
比如我们要在多个组件里初始化同一个数据,如果每次都useState重复很多遍。所以我们可以把这个操作单独封装在一个函数里,谁想初始化这个数据,就调用一次函数。
// useTags.tsx
import {useState} from 'react';
function useTags(){
const [tags,setTags]=useState<string[]>(['衣服','餐饮','住房','交通'])
return {tags,setTags}
}
export default useTags
使用:
const {tags,setTags}=useTags()
注意事项:
- 这个函数名必须是
use开头,因为React规定,useState只能在函数组件或自定义Hook函数里使用。一般自定义的Hook函数名字都是use开头的。如果不是,会报错。 - 这个函数肯定要暴露出读写接口,以便别人调用之后拿到读写接口。要以对象的形式return ,以对象的形式接收。