React hook 裡的useState()、useEffect()讓 pure component在寫法上就可以在一定程度就可以取代class component了,也就是在一般情形下useState()、useEffect對於資料狀態的管理及變化就夠用了,但如果今天的程式碼一多、架構一大遇到較複雜的資料傳遞問題,因為當component一多時,可能會面臨到porps 的資料需要傳遞到很深,反而造成外部資料狀態較難管理,這時我們就可以使用React hook的Context API 太克服這樣的問題,如下圖所示

1. 首先使用React hook 內建的Context功能React.createContext(),定義它後並把它export出去,目的是要讓別的層或是別的componet可以去接它所設定的value

2. React.createContext()它有內建一個Porvider的功能可以將所設定的值存起來

3. 使用方式 – 傳送資料 : 我這邊為了方便記憶,我就稱呼為傳送層,如下圖所示用Provider把要傳送進去的component包起來,並可透過value屬性把值給存起來,然後我們已在步驟1 透過export的方式傳送出去

4. 使用方式 – 接收資料 : 在接收層的部份,把傳送層Provide的context 給Import進來

5. 使用方式 – 使用資料 : 可透過React.useContext()的方式把Import進來的context帶進去,就可以把傳送層送的資料解出來了