續前
我們的 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...。