hyejooLim / rainbow

🌈 μŠ€μΌ€μ€„ 관리 ν”„λ‘œμ νŠΈ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🌈 rainbow

React둜 κ°œλ°œν•œ 일정 관리 ν”„λ‘œμ νŠΈλ‘œ, 첫 번째 ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€!


1. ν”„λ‘œμ νŠΈμ— κ΄€ν•˜μ—¬

rainbowλŠ” λ‚˜μ˜ ν•˜λ£¨ 일정을 μž‘μ„±ν•˜λ©° 관리할 수 μžˆμŠ΅λ‹ˆλ‹€. 날씨 정보도 ν•¨κ»˜ ν™•μΈν•˜λ©° 일정을 μž‘μ„±ν•΄ λ³΄μ„Έμš”!


2. μ»΄ν¬λ„ŒνŠΈ

πŸ’Ž TDlayout

νˆ¬λ‘λ¦¬μŠ€νŠΈμ˜ λ ˆμ΄μ•„μ›ƒμ„ λ‚˜νƒ€λ‚΄λŠ” μ»΄ν¬λ„ŒνŠΈ


πŸ’Ž TDhead

νˆ¬λ‘λ¦¬μŠ€νŠΈμ˜ ν—€λ“œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ»΄ν¬λ„ŒνŠΈ

였늘의 λ‚ μ§œ, 날씨, μš”μΌ 그리고 남은 ν•  일의 개수λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.


πŸ’Ž TDlist

ν•  일 λͺ©λ‘λ“€μ„ λ Œλ”λ§ν•΄μ£ΌλŠ” μ»΄ν¬λ„ŒνŠΈ

TDitem μ»΄ν¬λ„ŒνŠΈλ₯Ό 화면에 λ Œλ”λ§ν•΄μ€λ‹ˆλ‹€.


πŸ’Ž TDitem

각 ν•  일 λͺ©λ‘μ„ λ‚˜νƒ€λ‚΄μ£ΌλŠ” μ»΄ν¬λ„ŒνŠΈ

ν•  일의 μ™„λ£Œ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ²΄ν¬λ°•μŠ€
ν…μŠ€νŠΈλ‘œ μž‘μ„±λœ ν•  일
ν•  일을 μˆ˜μ •ν•˜κΈ° μœ„ν•œ μˆ˜μ • λ²„νŠΌ
ν•  일을 μ‚­μ œν•˜κΈ° μœ„ν•œ μ•„μ΄μ½˜


πŸ’Ž TDadd

μƒˆλ‘œμš΄ ν•  일을 μΆ”κ°€ν•˜κΈ° μœ„ν•œ μ»΄ν¬λ„ŒνŠΈ

ν•  일을 μΆ”κ°€ν•˜λŠ” λ²„νŠΌ
μƒˆλ‘œμš΄ ν•  일을 μž…λ ₯ν•˜κΈ° μœ„ν•œ μž…λ ₯폼


πŸ’Ž TDcontext

λ‹€λ₯Έ μ»΄ν¬λ„ŒνŠΈμ—μ„œ κ³΅ν†΅μ μœΌλ‘œ μ“°μ΄λŠ” state듀을 κ΄€λ¦¬ν•΄μ£ΌλŠ” μ»΄ν¬λ„ŒνŠΈ

λ‹€μ–‘ν•œ hooksλ₯Ό μ‚¬μš©ν•¨
useState
useEffect
useReducer
useMemo
useContext


πŸ’Ž weatherInfo

ν˜„μž¬ μœ„μΉ˜μ˜ 날씨 정보λ₯Ό μ•Œλ €μ£ΌλŠ” μ»΄ν¬λ„ŒνŠΈ

OpenWeatherMap API μ‚¬μš©


3. 기술 μŠ€νƒ

  • React
    μ»΄ν¬λ„ŒνŠΈ 각각이 μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•˜κ³ , κΈ°λŠ₯을 λΆ„λ¦¬μ‹œμΌœ μœ μ§€λ³΄μˆ˜κ°€ μ‰½μŠ΅λ‹ˆλ‹€.

  • Context API
    각 μ»΄ν¬λ„ŒνŠΈμ—μ„œ μ•‘μ…˜μ„ λ””μŠ€νŒ¨μΉ˜ν•˜κ³  ν•˜λ‚˜μ˜ νŒŒμΌμ—μ„œ μ•‘μ…˜μ— 따라 μƒνƒœλ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.


4. μ„±λŠ₯ μ΅œμ ν™”

  • useMemo
// 1. done 값이 λ°”λ€” λ•Œμ—λ§Œ λ Œλ”λ§
{useMemo(() => <CheckCircle onClick={onToggle} done={done}>
  {done && <MdDone />}
</CheckCircle>, [done])}

// 2. μ•„μ΄μ½˜μ˜ λΆˆν•„μš”ν•œ λ Œλ”λ§ 방지
{useMemo(() => <Remove onClick={onRemove}>
  <MdDelete />
</Remove>, [])}

// 3. open 값이 λ°”λ€” λ•Œμ—λ§Œ λ Œλ”λ§
{useMemo(() => (<AddBtn onClick={onClickBtn} open={open}>
  <MdAdd />
</AddBtn>),[open])}

// 4. value 값이 λ°”λ€” λ•Œλ§ˆλ‹€ μ»΄ν¬λ„ŒνŠΈκ°€ μž¬λ Œλ”λ§λ˜λŠ” 것 방지
const value = useMemo(() => ({ state, dispatch }), [state]);

  • React.memo
// μ»΄ν¬λ„ŒνŠΈμ˜ λΆˆν•„μš”ν•œ μž¬λ Œλ”λ§ 방지
export default memo(TDhead);
export default memo(TDlist);
export default memo(TDitem);
export default memo(TDadd);

5. μŠ€ν¬λ¦°μƒ·

rainbow_suny rainbow_cloudy rainbow_rainy rainbow_snow

6. 배포


About

🌈 μŠ€μΌ€μ€„ 관리 ν”„λ‘œμ νŠΈ


Languages

Language:JavaScript 93.5%Language:CSS 4.2%Language:HTML 2.3%