React Query - woowa-techcamp-2021/store-4 GitHub Wiki
React-query
- ๋ฐ์ดํฐ fetching, caching, synchronizing and updating server state์ ๋์์ฃผ๋ ๋๊ตฌ
- *์ฃผ์๋์ด ๋ฐ์ดํฐ fetching ์์ธ์ฒ๋ฆฌ๋ฅผ ์๋ก ๋ค๋ฉด์ ๋ง์ํ์
จ๋ ๊ธฐ๋ฅ๋ค ๋๋ถ๋ถ์ด ๊ฐ๋ฅํ ๋ฏ? (์บ์ฑ, ์คํจ์ ์ฌ์์ฒญ, ๋ช ์ด๋ง๋ค ์ฌ์์ฒญ ๋ฑ)
- ํต์ฌ์ด ๋๋ ๊ฐ๋
: query, mutation, query invalidation
- ์์ฃผ ๊ฐ๋จํ ์ค๋ช
ํ๋ฉด query๊ฐ ๋ฐ์ดํฐ ๋ฐ์์ค๋ ๊ฒ. mutation์ post, delete ๊ฐ์ ์๋ฒ ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝํ๋ ์์
. Query invalidation์ (์ฃผ๋ก) mutation์ ์ํํ๊ณ ๋ ๋ค์ ๊ด๋ จ query๊ฐ ๋ ์ด์ ์ ํจํ์ง ์๋ค(์๋ฒ๊ฐ ๊ฐ์ง ๋ฐ์ดํฐํ๊ณ ๋ค๋ฅด๋ค)๊ณ ์๋ ค์ฃผ๋ ๊ฒ. (์๋ฅผ ๋ค์ด ๊ธ์ ์ฌ๋ฆฌ๊ณ ๋๋ฉด ์ ์ฒด ๊ธ ๋ฆฌ์คํธ๋ฅผ invalidate ํ๋ ์. ๊ทธ๋ฌ๋ฉด ๊ทธ ์ฟผ๋ฆฌ๋ ๋ค์ fetch๋จ)
- ๊ธฐ๋ณธ์ (๊ธฐ๋ณธ ์ธํ
์ ์ํ๋ฉด)์ผ๋ก๋ ์ฟผ๋ฆฌ์ ์ ์ธ์คํด์ค๋ง๋ค ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ด => ์บ์๋ ๋ฐ์ดํฐ๋ฅผ staleํ๋ค๊ณ ๋ณด๊ธฐ ๋๋ฌธ (staleTime ์ต์
์ ์ฃผ๋ฉด ๋งค๋ฒ ์๋ฒ ์์ฒญ์ ํ์ง ์๊ณ ์บ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํจ)
- query๋ ๋ช ๊ฐ์ง ์ํ ์กด์ฌ => isLoading, isError, isSuccess, isIdle(?) => ๋ค ๋ง์น๊ณ ๋๋ฉด inactive (์ด๊ฑด react-query๊ฐ ์์ฒด์ ์ผ๋ก ๊ด๋ฆฌํ๋ ์ํ์ธ๋ฏ?)
- inactiveํ ์ํ๋ก 5๋ถ์ด ์ง๋ ์ฟผ๋ฆฌ๋ garbage collect
- ์ด์ธ์๋ background fetching ๊ฐ์ ๊ฒ๋ค๋ ๊ฐ๋ฅํ ๋ฏ
- ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ
- ๊ฐ ์ปดํฌ๋ํธ์์๋ useQueryClientํด์ ์ฌ์ฉ: ์์ (https://react-query.tanstack.com/examples/basic)
- Custom Hook์ผ๋ก ๋ง๋ค์ด์ ์ฌ์ฉํ๊ธฐ ํธํจ : ์์ (https://react-query.tanstack.com/examples/custom-hooks)
- devTools ์์