728x90
๋ฐ˜์‘ํ˜•

์ „์—ญ๊ด€๋ฆฌ 4

Library] SWR : ์‘์šฉ_Mutate & Revalidation

Mutate mutate๋Š” ์›๊ฒฉ ๋ฐ์ดํ„ฐ ๋ฐ ์บ์‹ฑ๋œ ๊ฐ’์„ ๋ณ€๊ฒฝ, ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณณ์—์„œ ํ•ด๋‹นํ•˜๋Š” ํ‚ค๊ฐ’์— ๋ฐ์ดํ„ฐ๋ฅผ post๋‚˜ delete, patch ๋“ฑ ์ž‘์—…์ด ์ผ์–ด๋‚ฌ์„ ๊ฒฝ์šฐ, ์บ์‹ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•ด์•ผ ๋  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค. (revalidation) Global๊ณผ Bound ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆ ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. Global Mutate useSWRConfig ๋˜๋Š” swr์„ import ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. import { useSWRConfig } from "swr" function App() { const { mutate } = useSWRConfig() mutate(key, data, options) } /////////////////////////////////////// impor..

Front-End/Library 2023.07.03

Library] SWR : ์‘์šฉ

2023.07.03 - [Front-End/Library] - Library] SWR ์ €๋ฒˆ ๊ฒŒ์‹œ๊ธ€์— ์ด์–ด์„œ SWR ์—ฌ๋Ÿฌ ๊ฐœ๋…? ๊ธฐ๋Šฅ? ๋“ค์„ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ „์—ญ์„ค์ • ๋งŒ์•ฝ SWR์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ fetcher๊ฐ€ ์ค‘๋ณต๋œ๋‹ค๋ฉด ๊ณ ๋ คํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๋“ฏํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. import useSWR, { SWRConfig } from 'swr' function Dashboard () { const { data: events } = useSWR('/api/events') const { data: projects } = useSWR('/api/projects') const { data: user } = useSWR('/api/user', { refreshInterval: 0 }) // ์˜ค๋ฒ„๋ผ์ด๋“œ // ... } funct..

Front-End/Library 2023.07.03

Library] SWR

SWR(Stale-While-Revalidate) swr์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ React hook ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์— GET์š”์ฒญ์„ ํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์™€ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ axios๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํšจ์œจ์ด ์ข‹๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ํŠน์ง•์œผ๋กœ ๋น ๋ฅด๊ณ , ๊ฐ€๋ณ๊ณ , ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ๋‚ด์žฅ๋œ ์บ์‹œ ๋ฐ ์š”์ฒญ ์ค‘๋ณต์„ ์ œ๊ฑฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™์ž‘ 3๊ฐ€์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์„ ๋“ฏํ•ฉ๋‹ˆ๋‹ค. (์ €๋Š” ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ค‘๋ณต์œผ๋กœ ์š”์ฒญ์„ ์•ˆ ํ•œ๋‹ค๋Š” ๊ฒŒ ํฐ ์žฅ์ ์œผ๋กœ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.) ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://swr.vercel.app/ko ์„ค์น˜ npm i swr yarn add swr ๊ธฐ๋ณธ ๊ตฌ์„ฑ const { data, error, isLoading, isV..

Front-End/Library 2023.07.03

React] Hook : useContext

useContext ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด props๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋„˜๊ธธ ๋•Œ๊ฐ€ ์ฐพ์•„์˜ค๊ณค ํ•ฉ๋‹ˆ๋‹ค. ์ฆ์กฐ๋ถ€๋ชจ → ์กฐ๋ถ€๋ชจ → ๋ถ€๋ชจ → ์ž์‹ → ... ์ด๋ ‡๊ฒŒ props๋ฅผ ๊ณ„์† ๋„˜๊ธฐ๋‹ค ๋ณด๋ฉด ์—„์ฒญ๋‚œ ๋…ธ๊ฐ€๋‹ค๋ฅผ ํ•ด์•ผ ๋  ์ˆ˜๋„ ์žˆ๊ณ , ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด, ๊ฐ€๋…์„ฑ ๋“ฑ ์•ˆ ์ข‹์€ ์ ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ „์—ญ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Context๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Context๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฆ์กฐ๋ถ€๋ชจ์—์„œ ์ž์‹๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์‚ฌ์šฉํ•˜๊ธฐ์— ๋‹ค๋ฅธ hook๋ณด๋‹ค ๋ณต์žกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) createContext(initialValue) context๊ฐ์ฒด ์ƒ์„ฑ createContextํ˜ธ์ถœ ์‹œ, Provider์™€ Consumer ๋ฐ˜ํ™˜ Context.Provider ์ƒ์„ฑํ•œ context๋ฅผ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌ u..

Front-End/React 2023.06.23
728x90
๋ฐ˜์‘ํ˜•