useRecoilValueLoadable
Recoil state から Loadable として value を取り出したいときに使う Hook
(非同期) 処理が完了している場合、 loadable.state が "hasValue" になり loadable.contents に value が入る
非同期処理が完了していない場合、 loadable.state が "pending" になる
非同期処理が失敗した場合、loadable.state が "hasError" になり loadable.contents に Error が入る
Recoil state が変化したとき、コンポーネントは再描画される
get ではなく subscribe していると考えれば良い
useRecoilValueLoadable の戻り値はキャッシュされているので、状態変わらない限り参照が変わらない