๋ ๋ฒ์งธ ํฌ๋ ๋ฆฌ์คํธ
react-router-dom, styled-components์ redux์ ๋ํด ์ข ๋ ๊ณต๋ถํ ํ์ ๊ธฐ์ด ํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ ๊ทธ๋ ์ด๋ํด์ ๋ค์ ํ๋ฒ ๋ง๋ค์ด๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค. ํฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๋ฉฐ UI/UX ์ ์ผ๋ก๋, ๊ธฐ์ ์ ์ผ๋ก ๊ณ ๋ฏผํ๋ ๋ถ๋ถ๋ค๊ณผ ๊นจ๋ฌ์ ์ .. ๊ฐ์ ๊ฒ๋ค์ ํ๊ณ ํด๋ณด๋ ค ํ๋ค.
์์ฑ๋ ํฌ๋๋ฆฌ์คํธ๋ฅผ ๋ฐฐํฌํ ๋งํฌ๋ ์๋!
https://todolist-redux-theta.vercel.app/
React App
todolist-redux-theta.vercel.app
UI/UX
์ง๋๋ฒ์ ๋ง๋ค ๋๋ ๊ฝค ์์ ๋ถ๋ฐฉํ๊ฒ ๋ง๋ค์ด๋ดค์ผ๋ ์ด๋ฒ์๋ ์๊ตฌ๋๋ ํ์ ์ ์งํ๋ ์ฌ์ฉ์์ ํธ์๋ฅผ ์๊ฐํด์ ๋ ์ด์์์ ์ง๋ณด์๋ค.
ํฌ๋ ํ๋จ๋ถ์ ๋ฒํผ์ ์ฐ์ ์์๋ฅผ ๋ฐ์ก์ ๋, ์ ์ ์ ์ฅ์์๋ '์๋ฃ'๊ฐ ๊ฐ์ฅ ์์๊ฐ ๋๋ค๊ณ ์๊ฐํ์ฌ ๋ฐฐ๊ฒฝ์์ ์ฃผ์๊ณ ,
์ ๋ชฉ์ด๋ ๋ด์ฉ ๋ถ๋ถ์ด ๋๋ฌด ๊ธธ์ด ํ๋ฌ๋์น๋ ๊ฒฝ์ฐ ๋ง์ค์ํ๋ฅผ ๋ฃ์ด์ฃผ๋๋ก ํ๋ค.
Styled-components
styled-components์ props๋ฅผ ์ด์ฉํ ์กฐ๊ฑด๋ถ ์คํ์ผ๋ง์ ์ฒ์ ์๋ํด๋ณด์๊ณ , createGlobalStyle
ํจ์๋ฅผ ํตํด ์ ์ญ ์คํ์ผ์ ์ ์ฉํด๋ณด์๋ค. ํ๋ก์ ํธ ๋๋ ์ถฉ๋ถํ ํ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค. ๐
map ๋ฉ์๋์ ๊ณ ์ key๊ฐ ๋งคํ
index๋ todo์ length๋ฅผ key๋ก ๋งคํํ์ ๋, ํฌ๋๋ฅผ ์ญ์ ๋๊ณ ๋ค์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ key๊ฐ ๊ผฌ์ผ ์ ์๋ค.
๊ณ ์ key๋ฅผ ๋งคํํด์ฃผ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ง๋ง, ์ด๋ฒ์ uuid๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋์ด ์ฌ์ฉํด ๋ณด์๋ค.
uuid๋ ์์ ๊ฐ์ด 8-4-4-4-12 ํ์์ผ๋ก ํํ๋๋ ์ ์ผ ์๋ณ์์ด๋ค.
์ด๋ฅผ ์ด์ฉํด์ ํฌ๋๊ฐ ์ญ์ ๋์ด๋ key์ ์ํฅ์ด ๊ฐ์ง ์๋๋ก ํ๋ค.
Button ์ปดํฌ๋ํธ์ ์กฐ๊ฑด๋ถ ์คํ์ผ๋ง๊ณผ ์คํ ํจ์ ํ ๋นํ๊ธฐ
์ญ์ , ์๋ฃ, ์ทจ์ ๋ฑ์ ์ฐ์ธ Button
์ปดํฌ๋ํธ๋ ๊ฐ๊ฐ์ ํฌ๋์ ํด๋นํ๋ TodoItem
์ปดํฌ๋ํธ๋งํผ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ ์ปดํฌ๋ํธ๋ค.
Button ์ปดํฌ๋ํธ์์ ๊ณ ๋ฏผํ๋ ๊ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ค. ์กฐ๊ฑด๋ถ ์คํ์ผ๋ง๊ณผ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํจ์ ์คํํ๊ธฐ.
์ด๋ฅผ ์ํด์ props๋ก type
์ด๋ผ๋ ๊ฐ์ ์ ๋ฌํ๊ธฐ๋ก ํ๋ค.
์๋๋ props์ ๊ฐ์ ์กฐ๊ฑด๋ถ ์คํ์ผ๋ง์ ์ด์ฉํ ์ฝ๋ ์ผ๋ถ.
์กฐ๊ฑด๋ถ ์คํ์ผ๋ง์ ์ํด ๊ฐ๊ฐ ํด๋์ค๋ฅผ ๋ฃ์ด์ค ์๋ ์๊ฒ ์ง๋ง, styled-components์ ํน์ฑ์ ์ด๋ ค props๋ฅผ ์ด์ฉํ๋ค.
props๋ก ๋๊ธฐ๋ ๊ฐ ์ค type
์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฐฐ๊ฒฝ์, ํ
๋๋ฆฌ ์, ํฐํธ ์์ ๋ฑ์ ์คํ์ผ๋งํ ์ ์๋๋ก ํ๋ค.
๋ ๋ฒ์งธ๋ก ๋ฒํผ ํด๋ฆญ ์ ์คํ๋๋ ํจ์๋ฅผ ๊ฒฐ์ ํ๊ธฐ.
ํ์ ์ ๋ฐ๋ผ์ ๋ค๋ฅธ ํจ์๋ฅผ ๋ฆฌํดํ๋๋ก ํ๋ค.
์ด ๋ถ๋ถ์ ์งํํ๋ฉฐ ์ฝ์ง์ ์ข ํ๋๋ฐ, ๊ด๋ จ๋ ๋ด์ฉ์ ์๋์์ ๋ ์์ธํ ๋ณผ ์ ์๋ค. ๐
React onClick์ ํจ์ ๋๊ธธ ๋์ ๋งค๊ฐ๋ณ์ ์ฒ๋ฆฌ
Today, What I learned? redux์ styled-components, react-router-dom์ ์ด์ฉํด์ ์ข ๋ ์ ๊ทธ๋ ์ด๋๋ ํฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋๋ ์ค!.. ์ด์ ๋ณด๋ค ์ปดํฌ๋ํธ๋ฅผ ์ข ๋ ์ธ๋ถํ ํ๋ค๋ณด๋ ๋ฒํผ ์ปดํฌ๋ํธ๋ ๋ถ๋ฆฌํ๊ฒ ๋์๋ค.
i-ten.tistory.com
์ด๋ฒ ํฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๋ฉด์ ์ฐ์ state, props์ ์ข ๋ ๊ฐ๊น์์ง๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
styled-components ๋ง๋ณด๊ธฐ๋ง ํ์๋๋ฐ ์ ๊ทน์ ์ผ๋ก ํ์ฉํด๋ณผ ์ ์์ ๊ฒ ๊ฐ๊ณ , ๋ ๋ฆฌ๋์ค๋ฅผ ๋ค๋ฃจ๋ ๊ฒ๋ ์กฐ๊ธ์ ์ต์ํด์ง๋ ์๊ฐ์ด์๋ค. ๐
'๐ Studying > ๐ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
fetch์ Axios ๋น๊ต (0) | 2022.12.19 |
---|---|
ํฌ๋ ๋ฆฌ์คํธ ๋ฆฌํฉํ ๋ง (2) | 2022.12.16 |
React onClick์ ํจ์ ๋๊ธธ ๋์ ๋งค๊ฐ๋ณ์ ์ฒ๋ฆฌ (1) | 2022.12.13 |
React ํฌ๋๋ฆฌ์คํธ ๋ง๋ค๊ธฐ (1) | 2022.12.06 |
JS ํ์ด์ด๋ฒ ์ด์ค DB ๋ฐ์ดํฐ count ์ง๊ณํด์ ๋ถ๋ฌ์ค๊ธฐ (1) | 2022.11.24 |
Comment