Style
Ant-design / Styled-components
Last updated
Ant-design / Styled-components
Last updated
๋จผ์ ํจํค์ง๋ฅผ ์ค์นํด ์ค๋๋ค.
@ant-design/icons ๋ฅผ ๋ฐ๋ก ์ค์นํด์ค์ผ ํ๋ ์ด์ ๋ ๋ณดํต icon๊ณผ ๊ฐ์ ์ด๋ฏธ์ง ํจํค์ง์ ํฌ๊ธฐ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ๋๋ค.
Ant-design์ด๋ Bootstrap์ ๋ณดํต ์ค๋ฌด์์๋ ๊ด๋ฆฌ์ํ์ด์ง์ ๊ฐ์ด ๋์์ธ์ ์ค์์ฑ์ด ์กฐ๊ธ์ ๋จ์ด์ง๋ ํ์ด์ง์ ์ฌ์ฉ๋ฉ๋๋ค.
์ ํ์ด์ง์์ ์ปดํฌ๋ํธ ๋ชฉ๋ก์ ํ์ธํ ์ ์์ต๋๋ค.
Menu component๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋๋ค๋ฉด
์ด๋ ๊ฒ ์์ ํ๋ฉด ๋์ง๋ง
next๋ ์์ webPack์ด ๋ด์ฅ๋์ด์๋๋ฐ, css๋ฅผ ๋ณด๋์๊ฐ js์ ๋ฃ์ด์ฃผ๊ฒ๋ฉ๋๋ค..
pages์ ๊ณตํต์ผ๋ก ์ ์ฉํ ๊ฒ์ด์ด ์์๋๋, ๋ชจ๋ page์์ ์ผ์ผ์ด ์จ์ฃผ๋ ๊ฒ์ด ์๋๋ผ
pagesํด๋ ์์ _app.js๋ฅผ ๋ง๋ค์ด ๊ณตํต์ ์ธ ์์๋ฅผ ํ๋๋ก ์ฒ๋ฆฌํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ด๋ ๊ฒ ๋๋ฉด _app.js๋ ๋ค๋ฅธ ํ์ด์ง๋ค์ ๋ถ๋ชจ์์๊ฐ ๋ฉ๋๋ค. (HOC๊ฐ ๋๋๊ฒ์ด์ฃ )
Component๋ ๋ค๋ฅธ ์์๋ค ์ฆ ์ถ๋ ฅํ ํ์ด์ง๋ฅผ ์๋ฏธํ๊ฒ ๋ฉ๋๋ค.
์ด๋ฟ์๋๋ผ ๋ชจ๋ ํ์ด์ง์ ๊ณตํต๋๋ ๊ฒ๋ค์ ์ ์ด์ฃผ๋ฉด ๋๋ต๋๋ค.
_app.js : ๋ชจ๋ ํ์ด์ง์ ๊ณตํต๋๋ ๊ฒ๋ค
Layout : ์ผ๋ถ ํ์ด์ง์ ๊ณตํต์ธ ๊ฒ๋ค
next๋ HTML์ headํ๊ทธ๋ฅผ ์ง์ํฉ๋๋ค.
๋ํ ์๋์ ๊ฐ์ด HTML์ title์ด๋ meta๋ ์ง์ ํด ์ค ์ ์์ต๋๋ค.
๋ง์ฝ ๊ณตํต๋์ง ์๋ Head๋ผ๋ฉด index.js์ ๋ฃ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์๋์ ๊ฐ์ด ๊ฒ์์ฐฝ์ ๋ฃ์ด์ฃผ์ธ์ฌ
์ด๋ ๊ฒ css๋ฅผ ์ค ์๋ ์์ต๋๋ค.
์ด๋ฐ CSS์์คํ ์ Grid ์์คํ ์ ๊ฐ์ง๊ณ ์๋๋ฐ
๋ชจ๋ฐ์ผํ์ด์ง๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์๋ ๋๊ฐ์ง๊ฐ ์์ต๋๋ค.
๋ฐ์ํ - ํ๋ฉดํฌ๊ธฐ์ ๋ฐ๋ผ ์ปดํฌ๋ํธ๋ค์ด ์ฌ๋ฐฐ์น ๋๋ ๊ฒ.
์ ์ํ - ๋ชจ๋ฐ์ผํ์ด์ง ๋ฐ๋ก, ๋ฐ์คํฌํ ํ์ด์ง ๋ฐ๋ก ๋ง๋๋ ๊ฒ.
Ant-Design์์๋ ๋ฐ์ํ Grid์์คํ ์ ์ ๊ณตํฉ๋๋ค.
row / column ๋๊ฐ์ง ์ปดํฌ๋ํธ๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ ์ฉ์ํฌ ์ ์์ต๋๋ค.
์์ํ๋ฉด -> ํฐํ๋ฉด ์์ผ๋ก ๋์์ธํ๋ ๊ฒ์ด ํธํ๋ฉฐ,
์ด 24์นธ์ผ๋ก ๋๋์ด์ ธ ์๊ธฐ ๋๋ฌธ์ 24๋ก ๋๋์ด์ ธ์ผ๋ง ํ๋ฉฐ 24๊ฐ ๋์ด๊ฐ๋ฉด ์๋ฉ๋๋ค.
๋ณดํต ํ๋ธ๋ฆฟ : sm ๋ชจ๋ฐ์ผ: xs ์ด๋ ๊ฒ ์ฌ์ฉํฉ๋๋ค.
๋ฌผ๋ก ๋์ค์ ์ปค์คํ ํ ์๋ ์์ต๋๋ค.
gutter๋ grid-gap ๊ณผ ๊ฐ์ ์์ฑ์ ๋๋ค.
์์ดํ ์ฌ์ด์ ๊ฐ๊ฒฉ์ ์๋ฏธํฉ๋๋ค.
aํ๊ทธ์์ target="_blank"
๋ฅผ ์ด์ฉํด ์์ฐฝ์ผ๋ก ๋งํฌ๋ฅผ ๋์ด๋ค๋ฉด
์์ฑ์ ์ถ๊ฐํด ๋ณด์์ทจ์ฝ์ ์ ๋ณด์ํด์ผ๋ง ํฉ๋๋ค.
์ผ์ชฝ๋ฉ๋ด์๋ ๋ก๊ทธ์ธ๊ธฐ๋ฅ์ ๋ง๋ค์ด ์ค๋๋ค.
๋ฐฑ์ค๋ ์๋ฒ๊ฐ ์๊ธฐ๋๋ฌธ์ useState
๋ฅผ ์ด์ฉํ ์ํ๊ด๋ฆฌ๋ก ๋๋ฏธ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด ์ค๋๋ค.
์ฐ์ UserProfile.js / LoginForm.js ๋๊ฐ์ง ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์
Presenter๊ณผ Container๋ฅผ ๋๋ ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ์์ ๋ถํฐ ๋ง์ด ์งํํ์ง๋ง,
๋ฆฌ์กํธํ์ด Hooks ์ดํ๋ก ๋๋๋๊ฑธ ์ถ์ฒํ์ง ์๋๋ค ํ์๊ธฐ์ ํ ํ์ผ์์ ์งํํด๋ด ๋๋ค.
์ด์ ์ํ๋ค์ JSX์ ์ ์ฉ์์ผ์ฃผ์ธ์
AppLayout ์ปดํฌ๋ํธ์์ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋ง ํด์ฃผ์ธ์.
ํ๊ฐ์ง ์ฃผ์ํด์ผ ํ ์ ์ด ์์ต๋๋ค. ์์์ ์์ฑํ ์ฝ๋์ค ์๋ ์ฝ๋๋ฅผ ๋ด์ฃผ์ธ์
๋ณดํต css์ ์คํ์ผ์ ์ฃผ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๊ฐ๋จํ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ธ๋ฐ, ์ด๋ ํฐ ๋ด์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์คํ์ผ์ ์์ฒ๋ผ ๊ฐ์ฒด๋ก ์ฃผ๊ฒ๋๋ฉด ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋๊ฐ์ด ์๋ฌด๊ฒ๋ ์์ด๋ ๋ฆฌ๋ ๋๋ง ๋์ด๋ฒ๋ฆฝ๋๋ค.
์ div ํ๊ทธ๋ฅผ styled-components๋ฅผ ์ด์ฉํด ๋ฐ๊ฟ์ฃผ๊ฒ ์ต๋๋ค.
์ฌ์ค ์ฑ๋ฅ์ ํฐ ์ง์ฅ์ ์ฃผ์ง๋ ์๊ธฐ๋๋ฌธ์ ๊ฐ๋จํ ์์ ์ด๋ฉด ์ธ๋ผ์ธ์คํ์ผ์ ์ฌ์ฉํ์ ๋ ํฌ๊ฒ ๋ฌธ์ ๋ ๊ฒ์ ์์ต๋๋ค.
์ฌ์ค ๋ฆฌ๋๋๋ง์ด ๋๋ฉด ์ฒ์๋ถํฐ ๋๊น์ง ๋ค์ ์์๋๋ ๊ฒ์ ๋ง์ต๋๋ค.
useCallBack, useMemo๋ฅผ ์ฌ์ฉํด ์บ์ฑํ๊ฒ๋๋ฉด ๊ทธ๊ฑธ ๋ง์์ค ์ ์์ฃ .
React์์๋ JSX์์ ๋ฐ๋๋ถ๋ถ๋ง ๋ค์ ๋ ๋๋งํด์ค๋๋ค.
์ฆ ์ด์ ์ ์ปดํฌ๋ํธ์ ๋น๊ตํด์ ๋ฐ๋ ๋ถ๋ถ๋ง ๋ค์ ๊ทธ๋ ค์ค๋๋ค.
Virtual DOM ์ฆ, ํจ์ํ ์ปดํฌ๋ํธ ์์ return๋๋ ๋ถ๋ถ์ ๋ฆฌ์กํธ์์๋ ์ฒ์์ ํ๋ฒ ์น ๊ทธ๋ ค์ค๋ค,
์ด์ ์ปดํฌ๋ํธ์ ๋ค์ ์ปดํฌ๋ํธ๋ฅผ ๋น๊ตํด ๋ฐ๋๊ฒ ์์ผ๋ฉด React๋ ์ปดํฌ๋ํธ๋ฅผ ๋ฆฌ๋๋๋ง ํด์ค๋๋ค.
๊ฒฐ๊ตญ ๋ฆฌ๋๋๋ง์ ์ ๊ฒํ๋ฉด ์ฑ๋ฅ์ ์ผ๋ก ์ข๊ฒ ์ฃ ?
xs
screen < 576px
number | object
-
sm
screen โฅ 576px
number | object
-
md
screen โฅ 768px
number | object
-
lg
screen โฅ 992px
number | object
-
xl
screen โฅ 1200px
number | object
-
xxl
screen โฅ 1600px
number | object
-