基于自定义Hook提取公共逻辑
自定义 Hook 是一种自然遵循 Hook 设计模式的函数,它可以让开发者将组件逻辑提取到可重用的函数中。当开发者想在不同的组件之间共享一些状态逻辑时,自定义 Hook 非常有用。使用自定义 Hook 可以使组件更加清晰、简洁,同时保持逻辑的可复用性和组织性。
创建自定义 Hook 很简单,你只需要创建一个函数,其名称以 use
开头,然后在该函数内部调用其他 Hook。以下是一个简单的自定义 Hook 的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
import { useState } from "react";
const useBatchState = function (initialState) { const [state, setState] = useState(initialState); const setBatchState = function (newState) { setState({ ...state, ...newState }) } return [state, setBatchState]; }
const DiyDemo = function () { const [state, setBatchState] = useBatchState({ name: '张三', age: 18 })
return ( <div> <h1>自定义hook</h1> <p>姓名:{state.name}</p> <p>年龄:{state.age}</p> <button onClick={() => setBatchState({ name: '李四' })}>修改姓名</button> </div> ) }
export default DiyDemo;
|
自定义 Hook 的关键优势在于它们的复用性和对逻辑的封装。开发者可以在不同的组件中使用同一自定义 Hook,而无需编写重复的代码。当发现自己在多个组件中重复相同的 Hook 逻辑时,就是创建自定义 Hook 的好时机。