styled-component ๋กœ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ

    0. ์™œ ๊ณต๋ถ€ํ•˜๋‚˜

    ํ•ด์ปคํ†ค ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๋ฉฐ ํŒ€์›์˜ ์ฝ”๋“œ ๊ฐ„์— css ๊ฐ„์„ญ์ด ์ผ์–ด๋‚˜ ๋ช‡๋ฒˆ์˜ ์ˆ˜์ •์„ ๊ฑฐ์ณค๋‹ค. 

    ๋ฆฌ์•กํŠธ์— css๋ฅผ ์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค์–‘ํ•˜์ง€๋งŒ, styled-component๋Š” ์•Œ๊ณ ๋งŒ ์žˆ์—ˆ์ง€ ์‚ฌ์šฉํ•ด๋ณธ ์ ์€ ํ•œ๋ฒˆ๋ฐ–์— ์—†๋Š” ๊ธฐ์ˆ ์ด๋‹ค. (๋‚˜๋Š” ๋ฆฌ์•กํŠธ ๋ฒ ์ด๋น„๋‹ˆ๊น) 

    ์‹œํ–‰์ฐฉ์˜ค์˜ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ styled-component๋กœ ๋ฐฉ์‹์„ ๋ฐ”๊พธ๊ธฐ๋กœ ํ•˜์˜€๊ณ , ์ƒ์ฝ” ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜๋ฅผ ๋“ค์–ด๋ณด๋ ค ํ•œ๋‹ค. 

     

    ๊ฐ•์˜ ์‹œ๊ฐ„์ด 14๋ถ„๋ฐ–์— ์•ˆ๋˜๋‹ˆ๊นŒ ์ •๋ฆฌ๊ฒธ ํ•œ์‹œ๊ฐ„์•ˆ์— ๋๋‚ด๋Š” ๊ฑธ ๋ชฉํ‘œ๋กœ ํ•˜๋ฉฐ ๋ธ”๋กœ๊ทธ๋ฅผ ์ผฐ๋‹ค. 

     

     

    1. ๊ธฐ์กด์˜ ์ธ๋ผ์ธ css ์„ ์–ธ๊ณผ styled-component์˜ ๋น„๊ต 

    ์—ญ์‹œ ์šฐ๋ฆฌ์˜ ์ƒ์ฝ” ๊ต์ˆ˜๋‹˜์€ ํŠน์ • ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ผญ ๋น„๊ต๋กœ ์‹œ์ž‘ํ•˜์‹ ๋‹ค. 

    ๋‚œ ์ด ๊ณผ์ •์ด ์ฐธ ์ข‹๋‹ค - โœจ

    - ์™ผ์ชฝ์€ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฆฌํ„ด๊ฐ’์œผ๋กœ ๋ฒ„ํŠผํƒœ๊ทธ๋ฅผ ๋‘์–ด ๋ฒ„ํŠผ ํƒœ๊ทธ๋ฅผ ์ตœ์ƒ์œ„ ํƒœ๊ทธ๋กœ ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 

    - ์˜ค๋ฅธ์ชฝ์—์„œ styled-component๋ฅผ ์‚ดํŽด๋ณด๋ฉด, styled-components๋ฅผ importํ•˜๊ณ  styled๋ฅผ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ์— styled.botton๊ณผ ๋ฐฑํ‹ฑ์„ ํ™œ์šฉํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ๊ณ  ๋ฒ„ํŠผ์„ ์ตœ์ƒ์œ„๋กœ ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. 

     

    ์–ธ์ œ๋‚˜ ๊ทธ๋ ‡๋“ฏ, ๊ฒฐ๊ณผ๋ฌผ์€ ๊ฐ™๋‹ค. 

     

     

    ๐Ÿ“ styled-component๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ! 

    ์“ฐ๋Š” ์ด์œ  - 

    ์šฐ๋ฆฌ๊ฐ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ด ์•ˆ์— ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋„ฃ๋‹ค๋ณด๋‹ˆ ๋””์ž์ธ ์š”์†Œ๋„ ์—ฌ๊ธฐ์— ๋‚ด์žฅํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ(์™ผ์ชฝ์—์„œ style= ์ด๋ ‡๊ฒŒ ๊ฐ์ฒด ์ฃผ์ž…) ํ•˜๊ณค ํ•œ๋‹ค. ํ•˜์ง€๋งŒ css๋Š” ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋‹ค. css๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํ™” ํ•˜๋‹ค๋ณด๋‹ˆ๊นŒ ์–ด์ฉ” ์ˆ˜ ์—†์ด ์–ด๊ฑฐ์ง€์ฒ˜๋Ÿผ ๊ฐ์ฒด๋ฅผ ๋„ฃ๊ณคํ•œ ๊ฒƒ. 

    ์›๋ž˜ css๋Š” background-color์ด๋ ‡๊ฒŒ ์ง€์ •ํ–ˆ๋‹ค๋ฉด ์™ผ์ชฝ์˜ ์–ด๊ฑฐ์ง€ ์ฝ”๋“œ๋กœ๋Š” backgroundColor ์ด๋ ‡๊ฒŒ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ƒ‰์ƒ์„ ์ง€์ •ํ•ด์ฃผ์–ด์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ์ด์žˆ๋‹ค. (๋งž๋‹ค, ๋‚˜๋„ ๊ธ‰ํ•˜๊ฒŒ css๋ฅผ ๋„ฃ์„ ๋•Œ ์ € ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ๋Š”๋ฐ, ์ด๋ฆ„์ด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ ๊ณ„์† ๊ตฌ๊ธ€๋ง์„ ํ•˜๋ฉฐ ํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ์—ญ์‹œ ๋ชจ๋ฅด๋ฉด ์‹œ๊ฐ„๋‚ญ๋น„ ์˜ค์ง€๊ฒŒ ํ•จ)  

     

     

    2. styled component์˜ ์žฅ์ ! 

     

    - ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ ์žˆ๋Š” css ์˜ ๋ฐฉ์‹์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

    - ๊ธฐ์กด์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ž˜ํ•‘ํ•ด์„œ ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜์–ด์žˆ๋Š” ์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.(์ƒ์†๊ณผ ๋น„์Šท)

     

    styled() ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ

     

    ๋‹ค๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฒ„ํŠผ์„ ๊ฐ์Œ€ ๊ฒฝ์šฐ์—๋Š” ์ถ”๊ฐ€์ ์ธ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผํ•œ๋‹ค. 

    ์•ž์˜ ๋ฐฉ์‹๊ณผ ๊ฐ™์ด ํ–ˆ์„ ๋•Œ ํฐํŠธ์˜ ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    className์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐ

     

    3. prop์˜ ๊ฐ’์— ๋”ฐ๋ผ styled-component๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ ์ปดํฌ๋„ŒํŠธ์˜ ๋””์ž์ธ์ด ๋™์ ์œผ๋กœ ๋ฐ”๋€Œ๋„๋ก

     

    props์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„ ์ปฌ๋Ÿฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์ค„์ด๋ฉด ์ด๋ ‡๊ฒŒ
    ์ด์ „์— navbar ๋งŒ๋“ค ๋•Œ ์ผ์—ˆ์Œ ...! ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ ธ์˜จ๊ฑฐ๊ธด ํ•œ๋ฐ ์ด์ œ ์ดํ•ด์™„ ใ…Ž ใ…Ž

    ๋! ์ด์ œ ๋ฆฌํŒฉํ† ๋ง ํ•˜๋Ÿฌ ๊ฐ€๋ณธ๋‹ค .. 

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€