-
Notifications
You must be signed in to change notification settings - Fork 1
Redux vs Recoil
- ์์ฑ์: J201_์ต๋ช ์ฑ
์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Redux์ Recoil์ ๋น๊ตํ๊ณ ๊ฒฐ๋ก ์ ์ผ๋ก Redux๊ฐ ์๋ Recoil์ ๊ณ ๋ฅธ ์ด์ ์ ๋ํ ๊ธ.
์ํ๊ฐ์ด ๋ง์์ง ๊ฒฝ์ฐ ๋๋ฒ๊น ์ด ์๋์ ์ผ๋ก Recoil์ ๋นํด ๋ ํธํด์ง ๊ฒ์ผ๋ก ์์๋๋ค.
Redux Devtools
๋ฅผ ์ด์ฉํด ์ง๊ด์ ์ผ๋ก ๋ณผ ์ ์๋ ๋ฐฉ๋ฒ ๋ํ ์ ๊ณตํ๋ค.
์์ ์ํ ํ๋๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉดย actions
,ย reducer
,ย type
๋ฑ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ฝ๋๋ฅผ ๋ง์ด ์์ฑํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๋ค.
๋ด์ฅ ๊ธฐ๋ฅ์ด ์๋ ๋ฏธ๋ค์จ์ด๋ฅผ ํตํด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ํด์ค์ผ ํ๋ค.
redux-thunk
ย ํน์ยredux-saga
,ยredux-toolkit
๋ฑ์ ์ด์ฉ
React์์ ์ฌ์ฉํ๋ Hook๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํด์ ๊ตฌ์กฐ๊ฐ ๊ฐ๋จํ์ฌ ์ฝ๋ ์์ด ์ค์ด๋ ๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ํ RecoilRoot๋ก ๊ฐ์ธ๊ณ atom๋จ์๋ก ์ ์ธํ์ฌ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฌ๋์ปค๋ธ๊ฐ ๋ฎ๋ค.
const myRecoilState = atom({
key: "",
default: "",
})
const [state, setState] = useReocilState(myRecoilState)
Selector๋ผ๋ ๋ด์ฅ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
// https://recoiljs.org/docs/guides/asynchronous-data-queries
const currentUserNameQuery = selector({
key: 'CurrentUserName',
get: async ({get}) => {
const response = await myDBQuery({
userID: get(currentUserIDState),
});
return response.name;
},
});
๋๋ฒ๊น ๋ฐ ์ค๋ ์ท ํ ์คํธ๋ฅผ ํ๋๋ฐ ์์ด ์ ๋ขฐ์ฑ์ด ๋ถ์กฑํ๋ค.
Recoilize๋ผ๋ Devtool์ด ์๋๋ฐ ์์ ๋ฒ๊ทธ๋ค์ด ์๋ค๊ณ ํฉ๋๋ค.
useGetRecoilValue, useRecoilRefresher ๋ฑ์ ๊ณต์๋ฌธ์๋ UNSTABLE๋ก ๋ถ๋ฅ.
ํ๋ก์ ํธ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ์ ๋ ๊ทธ๋ ๊ฒ ๋ง์ ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ์ง ์์ ๊ฒ ๊ฐ์๋ค. Recoil์ด ๋๋ฒ๊น ์ด ๋ถํธํ๊ธด ํ์ง๋ง ๊ทธ๋ ๊ฒ ํฐ ํ๋ก์ ํธ๊ฐ ์๋๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ฒ๊น ๋ณด๋ค๋ ์งง์ ํ๋ก์ ํธ ๊ธฐ๊ฐ ๋์ ์ ์ง ๋ณด์์ ๋ฌ๋์ปค๋ธ๋ฅผ ๊ณ ๋ ค ํ์ ๋ Redux๋ ๋๋ฌด ๋ฌด๊ฒ๋ค๋ ์๊ฐ์ด ๋ค์๊ธฐ ๋๋ฌธ์ Recoil์ ๊ธฐ์ ์คํ์ผ๋ก ์ถ์ฒํ๋ค.
๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week1-Day1] ํ ๋น๋ฉ
- [Week1-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week1-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week1-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week1-Day5] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week2-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week2-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week2-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week2-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week3-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week3-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week3-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week3-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week4-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week4-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week4-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week4-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week5-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week5-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week5-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week5-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week6-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week6-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week6 Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week6 Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ