自定義hook的步驟


自定義hook的步驟

 

自定義hook的步驟

1.引入react和自己需要的hook
2.創建自己的hook函數
3.返回一個數組,數組中第一個內容是數據,第二是修改數據的函數
4.將自己定義的hook暴露出去
5.在自己的業務組件中引入並使用

通過自定義hook 模擬數據接口請求功能

utils > useLoadData.js

import React,{useState,useEffect} from 'react';

// 如何模擬數據接口請求功能
export default function useLoadData(){

    const [num,setNum] = useState(0);

    useEffect(() => {
        
        setTimeout(() => {
            console.log('rrr');
            setNum(2)
        }, 1000);
     
    }, [])

    return [num,setNum]

}

通過自定義hook Reducer的使用


import React,{useReducer} from 'react';

const store = {
    age:10
}


// useReducer使用?
// 1.創建 數據倉庫store 和 管理者reducer
// 2.通過useReducer(reducer,store)來state和dispatch
const reducer = (state,action) =>{
    switch (action.type) {
        case 'changeAge':
            return {
                ...state,
                age:action.age
            }
            
        default:
            return {
                ...state
            };
    }
}

export default function useLocalReducer(){
  const [state,dispatch] =  useReducer(reducer,store);

  return [
    state,
    dispatch
  ]
}

在組件中引入自定義的hook,並使用

components > useReducer.js

    import React from 'react';
import useLoadData from '../utils/useLoadData';
import useLocalReducer from '../utils/useLocalReducer';

export function Reducer(){

    const [num,setNum] = useLoadData()

   const [state,dispatch] = useLocalReducer()

    return(
        <div onClick={()=> dispatch({
            type:'changeAge',
            age:100
        })}>
            這是一個函數式組件---{num}--{state.age}
        </div>
    )
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM