[ํด๋ผ์ฐ๋ฉ ์ดํ๋ฆฌ์ผ์ด์ ์์ง๋์ด๋ง TIL] 240215 - React ์ค์ ํ๋ก์ ํธ 3
Intro
์ด์ ์ ์ด์ด ํ๋ก์ ํธ ๊ธฐ์ด ๊ณต์ฌ๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ ํ ํ๋ฉด์ ๊ตฌํํ๋ ์ค์ต์ ๋ฐ๋ผํด ๋ณด์๋ค.
์ค๋ ํ์ตํ ๋ด์ฉ
: ํ๋ก์ ํธ ๊ธฐ์ด ๊ณต์ฌ, ํ๋ก์ ํธ ํ ํ๋ฉด ๊ตฌํ
ํ๋ก์ ํธ ๊ธฐ์ด ๊ณต์ฌ - 2
- ์ํ ๊ด๋ฆฌ ์ธํ ํ๊ธฐ
- ํ๋ก์ ํธ State Context ์ธํ ํ๊ธฐ
- ํ๋ก์ ํธ Dispatch Context ์ธํ ํ๊ธฐ
์ํ ๊ด๋ฆฌ ์ธํ ํ๊ธฐ
" ํ๋ก์ ํธ์์ ์ ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ ๋ฐ์ดํฐ State ๊ด๋ฆฌ ๋ก์ง ์์ฑํ๊ธฐ "
์ผ๊ธฐ ํ๋ก์ ํธ์์, Home์ ์ผ๊ธฐ ๋ฆฌ์คํธ, New ํ์ด์ง์์ ์ผ๊ธฐ๋ฅผ ์์ฑํ๋ ๋ก์ง, Edit ํ์ด์ง์์ ์ผ๊ธฐ๋ฅผ ์์ ํ๋ ๋ก์ง, Diary ํ์ด์ง์ ์ผ๊ธฐ ๋ฐ์ดํฐ ํ๋๊ฐ ํ์ํ๋ค.
โก๏ธ useReducer ์ฌ์ฉ
const [data, dispatch] = useReducer(reducer, dummyData);
ํ๋ก์ ํธ State Context ์ธํ ํ๊ธฐ
" ๋ฐ์ดํฐ State๋ฅผ ๊ณต๊ธํ Context๋ฅผ ์์ฑํ๊ณ Provider๋ก ๊ณต๊ธํ๊ธฐ "
ํ๋ก์ ํธ Dispatch Context ์ธํ ํ๊ธฐ
" ์ผ๊ธฐ ๋ฐ์ดํฐ State์ Dispatch ํจ์๋ค์ ๊ณต๊ธํ Context๋ฅผ ์์ฑํ๊ณ Provider๋ก ๊ณต๊ธํ๊ธฐ "
ํ์ด์ง ๊ตฌํ - ํ(/)
- ํด๋น ์์ ๊ธฐ๊ฐ ๊ตฌํ๊ธฐ ex) 1/1 ~ 1/31
// ํด๋น ์์ ์ฒซ ๋
const firstDay = new Date(curDate.getFullYear(), curDate.getMonth(), 1).getTime();
// ํด๋น ์์ ๋ง์ง๋ง ๋
const lastDay = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0).getTime();
- ๊น์ ๋ณต์ฌ
const copyList = JSON.parse(JSON.stringify(diaryList))
- React์์ ํด๋์ค๋ช ์ฌ๋ฌ๊ฐ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
<div className={['emotion_img_wrapper', `emotion_img_wrapper_${emotion}`].join(' ')}>
: ๋ฐฐ์ด ๋ฆฌ์คํธ๋ก ์์ฑํ๊ณ ๋ฌธ์์ด๋ก ๋ํ๋ด์ผํ๋ฏ๋ก join์ผ๋ก string์ผ๋ก ๋ณํ
- ๋ ์ง๋ฅผ yyyy.m.d. ํํ๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ
const strDate = new Date(parseInt(date)).toLocaleDateString();
๋ง๋ฌด๋ฆฌ
์์ฑํ ํ ํ๋ฉด!!
ํฐํธ๊ฐ ์ฝ๊ฐ ๋ด ์คํ์ผ์ด ์๋๋ผ ๊ฐ์์ ๋ค๋ฅด๊ฒ ๋ฐ๊ฟ์ฃผ์๋ค. ๐
๋ฐฐ์ด ๋ด์ฉ๋ค์ ์ค์ต์ ํตํด ๋ณต์ตํ๋ ๋๋์ด๋ผ ํฌ๊ฒ ์ด๋ ค์ด ๊ฑด ์์๋ค.
๊น๋จน์๋ ํจ์๋ค๋ ํ๋ก์ ํธ ์ค์ต์ ํตํด ๋ค์ ๊ธฐ์ตํ ์ ์์ด ์ข์๋ค.