8/6
๐ง useApolloClient๋ก ์ํ๋ ๊ณณ์์ ์ฟผ๋ฆฌํ๊ธฐ ๐ง
๊ทธ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํด์ฌ ๋, useQuery๋ฅผ ์ฌ์ฉ ํ๋ค.
๊ทธ๋ฐ๋ฐ, ๊ธฐ์กด์ openapi๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด axios๋ฅผ ์ฌ์ฉํ์ ๋๋ฅผ ๊ธฐ์ตํ๋ฉด,
axios๋ useQuery์ ๋ค๋ฅด๊ฒ, ๋ด๊ฐ ์ํ๋ ๊ณณ์์ ์ํ๋ ๋ฒํผ์ ํด๋ฆญํ์ ๋, api์์ฒญ์ ํ ์ ์์๋ค.
ํ์ง๋ง! useQuery๋ ์ด๋ ๊ฒ ๋์ํ์ง ์๊ณ , ํ์ด์ง๊ฐ ๋ ๋๋ง๋ ๋ ์๋์ผ๋ก ์ฟผ๋ฆฌ๊ฐ ์์ฒญ๋๋ค.
๊ทธ๋ ๋ค๋ฉด, useQuery๋ฅผ axios์ฒ๋ผ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ณณ์์ api๋ฅผ ์์ฒญํ๊ธฐ ์ํด์ ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น?
์ด๋ฅผ ์ํด ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด useApolloClient ๐๐
๊ทธ๋ ๋ค๋ฉด, ์ useQuery๋ฅผ ์ด์ฉํ์ฌ ํ์ด์ง๊ฐ ๋๋๋ง๋ ๋ fetchUserLoggedIn ์ด๋ผ๋ API๋ฅผ ์๋์ผ๋ก ์์ฒญํ์ง ์๊ณ ,
useApolloClient๋ฅผ ์ฌ์ฉํด loginUser๋ผ๋ API๋ฅผ ์์ฒญ ํ fetchUserLoggedIn์ด๋ผ๋ API๋ฅผ ๊ณง๋ฐ๋ก ์์ฒญํด์ผ ํ๋๊ฑธ๊น?
= ํ์ด์ง๊ฐ ๋๋๋ง๋ ๋ fetchUserLoggedIn์ ์์ฒญํด๋, accessToken์ ์ฒจ๋ถํ์ง ๋ชปํ ์ํ์ด๋ฏ๋ก ์ฟผ๋ฆฌ์ ์คํจํ๊ฒ ๋๋ค.
fetchUserLoggedIn์ด๋ผ๋ API๋ accessToken์ด๋ผ๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ
๋ก๊ทธ์ธ๋ ์ ์ ์ ์ด๋ฉ์ผ๊ณผ ์ด๋ฆ ๋ฑ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ API์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๐ apolloCache ์ง์ ์์ ํ๊ธฐ ๐
๊ธฐ์กด์๋ refetchQueries๋ฅผ ์ฌ์ฉํ์๋ค.
์ด๋ฅผ ํ์ฉํ๋ฉด, ๊ต์ฅํ ๊ฐ๋จํ ๊ธฐ๋ฅ์ ๋ง๋ค ์ ์์๋ค.
ํ์ง๋ง refetch๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ด ์๋ค.
๋ชฉ๋ก(๊ฒ์๋ฌผ ๋ชฉ๋ก, ์ํ ๋ชฉ๋ก ๋ฑ)์ refetchํ๋ ๊ฒ์ด ๋ํ์ ์ธ ์.
๋ชฉ๋ก์ ๋ฐ์ดํฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์, ์๋ง์ ์ฌ๋๋ค์ด ํ๊บผ๋ฒ์ refetch ์์ฒญ์ ํ๊ฒ๋๋ฉด ๋ถํ์ํ ๋คํธ์ํฌ ๋น์ฉ์ด ๋ง์ด ํ์ํ๊ฒ ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด์, ๋ชฉ๋ก์ ๊ฒฝ์ฐ์๋ refetch๋ณด๋ค๋ Apollo์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ cacheState๋ฅผ ์ง์ ์์ ํด ์ฃผ์๋ค.
์ด๊ฒ์ ๋คํธ์ํฌ ํญ์ ํจ๊ป ์ด์ด๋๊ณ ๋ณด๋ฉด, ์ถ๊ฐ์ ์ธ refetch api ์์ฒญ์ด ๋ฐฑ์๋๋ก ๊ฐ์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ทจ์
ํ๊ฒ ๋๋ ์ค๋ฌด ํ๊ฒฝ์์๋ ์ด๋ฏธ ์ด๋ฌํ ๋ฌธํ๊ฐ ๊ฐ์ถ์ด์ ธ์๊ณ ์ฌ์ฉ ๋๊ณ ์์ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด๋ป๊ฒ ํ๋ฉด ํ์ฅ์ฑ, ์ ์ง๋ณด์์ฑ์ด ์ข์ ์๋น์ค๋ฅผ ๋ง๋ค์ง ์๊ฐํ๋ฉฐ ๋ง๋ค์ด์ผ ํ๋ค. (๋ฉด์ ์ ์ค์ํ๊ฒ ๋ณด๋ ์์)
๋ก๊ทธ์ธ์ ๋๋ฅด๋ฉด ๋ก๊ทธ์ธ ์ฐฝ์ด ๋์จ๋ค
๋์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ useQuery๊ฐ ๋๊ฐ ๊ฒ.
๋ก๊ทธ์ธ์ ํ๋ฉด ๋ฐ๊ปด์ผ ๋๋๊น refetch๋ฅผ ํด์ผํ๋ค
์์ธ์คํ ํฐ์ ๊ฐ์ง๊ณ ์์ฒญ์ ํด์ผํ๋ค
์ด๋ ๊ฒ ์ฐ๋ฉด ์ข๊ธด ํ๋ฐ ์์ธ์ค ์ฒจ๋ถ์ธ์ด ์๋ ์ํ
๊ทธ๋์ useAoplloClient๋ฅผ ์ฌ์ฉํ๋ค
์ฌ๊ธฐ์ ๋ค์ด๊ฐ์ ๊ทธ ์ดํ์ ์์ธ์คํ ํฐ์ด ๋๋ค.
ํ์ด์ง๊ฐ ์ด๋์ด ๋๋ฉด ์ด๋๋ ํ์ด์ง์์๋ ์์ธ์คํ ํฐ์ด ์๊ธฐ๋๋ฌธ์
์บ์ฌ ์ง์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ 2๊ฐ ์ถ๊ฐ
refetchQueries: [{query}]
๋ฆฌํจ์น์ฟผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ํ๋ ์์ ํ๊ณ ํ๋ ๋ฐ์์ฌ๋๋ ๊ด์ฐฎ์๋ฐ ๊ทธ ์ธ๋ ํ์ํ์ง ์์
1๊ฐ๋ฅผ ์ญ์ ํ์ผ๋ 9๊ฐ๋ฅผ ๋ฐ์์ค๋ ๊ฒ
10๊ฐ ์๋๊ฒ 9๋ก ์ค์ด๋ฌ
…prev = ๊ธฐ์กด์ 10๊ฐ ์คํ๋ ๋ ์ํด
_id๋ง ์์ผ๋ฉด ์๋๋ค
๊ทธ๋์
๋ค ๋ฃ์ด์ผํ๋ค
writer, title, contents
'code.camp' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ ์ ์ก! frontend: ์ด๊ฑฐ ์ค๋? => backend: ok!! (0) | 2021.10.16 |
---|---|
๊ฒฐ์ ํ๋ก์ธ์ค, imp_uid, ์์ํฌํธ ์น ํ ๋ ธํฐํผ์ผ์ด์ (0) | 2021.08.11 |
ํผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ณตํต ์ปดํฌ๋ํธ (0) | 2021.08.08 |
useApolloClient๋ก ์ํ๋ ๊ณณ์์ ์ฟผ๋ฆฌํ๊ธฐ, apolloCache ์ง์ ์์ ํ๊ธฐ (0) | 2021.08.08 |
๋ก๊ทธ์ธ์ ํ๋ ค๋ฉด? (0) | 2021.08.08 |
๋๊ธ