續前
我們的 Recoil 就誕生了!!! 當然,對於狀態管理,有許多人提出各種解決方案。不過我們本篇就從探索Recoil 開始吧!!!!!!
Recoil 希望解決我們 上一篇 導讀(1) 所遭遇到的那些問題,但也希望 Recoil 提供的 API ,同時能符合 React 原生的語法、語意及行為。
稍微舉個例子,這邊還沒解釋,所以看不懂沒關係。
const [count, setCount] = useState(initialCountState)
const [count, setCount] = useRecoilState(countState)
這裡我們可見, Recoil API 用法與 React hook API 看起來很相似,只不過 useState
拿出的 count
是屬於當下的那個元件的 (Local);而 useRecoilState
所拿出的 count
是屬於整個 App
共用的 (Global)。
useState | useRecoilState | |
---|---|---|
API | React | Recoil |
State | Local | Global |
概念上,我們可以簡單想像成 Recoil 如同 Redux ,有個 Store 儲存整個 App
共用的 state ,useRecoilState
所拿出的 count
就是這個 Store 關於 count
這部分的全域 state (countState)
, 但我們的全域裡面,除了 countState
,也可以根據不同需求切割儲存各種不同的 state 如: authState
、 memberState
、 shopCartState
etc...。