1.<RecoilRoot>
元件:放在React專案元件頂層,負責儲存所有的 Recoil state
2.useRecoilState:如同useState hook,可以取得 state 、 state setter,參數帶入你想要獲取的state名稱
3.useRecoilValue:僅取得state、不能拿 state setter,一般多在拿取 selector 的 state 時使用(因為seletcor 是被其他 atom 或 selector算出來的,通常我們不需要主動set )
4.useSetRecoilState:僅取得state setter、不能拿 state,通常作為效能優化的手段(因為我們使用這個setter 時,我們被沒有拿取、使用該 state,因此 state 的改變,不會造成此元件重新渲染)
5.useRecoilStateLoadable:獲取非同步狀態時,不想使用<Suspense>
,想要客製化自己的 loading跟 error時使用,如同useState hook,可以取得 LoadableState 、 state setter。(原本希望取得的state會被放入 LoadableState 這個物件裡面的content,我們透過switch LoadableState 物件裡的 state切換 3 種狀態:1.取值 , 2.讀取中, 3.錯誤狀態)
6.useRecoilValueLoadable:獲取非同步狀態時,不想使用<Suspense>
,想要客製化自己的 loading跟 error時使用,僅取得 LoadableState、不能拿 state setter。(原本希望取得的state會被放入 LoadableState 這個物件裡面的content,我們透過switch LoadableState 物件裡的 state切換 3 種狀態:1.取值 , 2.讀取中, 3.錯誤狀態)