[React] styled component

chxxrinยท2024๋…„ 4์›” 1์ผ
0

React

๋ชฉ๋ก ๋ณด๊ธฐ
27/32
๐Ÿ’ก styled-components ์“ฐ๋ฉด JS ํŒŒ์ผ์—์„œ CSS ์ „๋ถ€ ํ•ด๊ฒฐ๊ฐ€๋Šฅ

1. styled component ์„ค์น˜

npm install styled-components

2. import ํ•ด์˜ค๊ธฐ

import styled from "styled-components";

3. Component ์ƒ์„ฑ

๐Ÿ’ก **function ๋ฐ”๊นฅ์—** ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ
let YellowBtn = styled.button`
  background : yellow;
  color: black;
  padding: 10px;
  `

4. Component ์‚ฌ์šฉ

<YellowBtn>๋ฒ„ํŠผ</YellowBtn>

Styled-component ์žฅ์ 

์žฅ์ 1. CSS ํŒŒ์ผ ์•ˆ์—ด์–ด๋„ ๋œ๋‹ค

์žฅ์ 2. ์Šคํƒ€์ผ์ด ๋‹ค๋ฅธ jsํŒŒ์ผ๋กœ ์˜ค์—ผ๋˜์ง€ ์•Š์Œ

โ†’ ์˜ค์—ผ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์ด๋ ‡๊ฒŒ ํŒŒ์ผ ์ž‘๋ช…ํ•˜์ž

**์ปดํฌ๋„ŒํŠธ.module.css**

App.module.css 

์žฅ์ 3. ํŽ˜์ด์ง€ ๋กœ๋”ฉ์‹œ๊ฐ„ ๋‹จ์ถ•

โ†’ ๋กœ ๋„ฃ์–ด์ฃผ๋ฏ€๋กœ ํŽ˜์ด์ง€ ๋กœ๋”ฉ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋จ

Styled-component ๋‹จ์ 

๋‹จ์ 1. JSํŒŒ์ผ์ด ๋งค์šฐ ๋ณต์žกํ•ด์ง

๋‹จ์ 2. ์ค‘๋ณต์Šคํƒ€์ผ์€ ์ปดํฌ๋„ŒํŠธ๊ฐ„ importํ• ํ…๋ฐ CSS์™€ ๋‹ค๋ฅผ๋ฐ”๊ฐ€ ์—†์Œ

๋‹จ์ 3. ํ˜‘์—…์‹œ CSS ๋‹ด๋‹น์˜ ์ˆ™๋ จ๋„ ์ด์Šˆ

Q. ๋‹ค๋ฅธ์ƒ‰ ๋ฒ„ํŠผ์ด ํ•„์š”ํ•˜๋ฉด?

โ†’ ํŒŒ๋ผ๋ฏธํ„ฐ, props ๋ฌธ๋ฒ• ์“ฐ์ž!!

โ†’ ๊ฐ€๋ณ€์ ์ธ ๋ถ€๋ถ„์„ props๋กœ ๋šซ์–ด๋†“๊ณ  ์ปดํฌ๋„ŒํŠธ ์žฌํ™œ์šฉ ๊ฐ€๋Šฅ

**${ props => props.๋ณ€์ˆ˜ }**
let YellowBtn = styled.button`
  background : **${ props => props.bg };**
  color: black;
  padding: 10px;
  `
<YellowBtn **bg="blue"**>ํŒŒ๋ž€์ƒ‰ ๋ฒ„ํŠผ</YellowBtn>
<YellowBtn **bg="orange"**>์˜ค๋ Œ์ง€์ƒ‰ ๋ฒ„ํŠผ</YellowBtn>

Styled component์— ์กฐ๊ฑด๋ฌธ ๋„ฃ๊ธฐ

Q. ๋งŒ์•ฝ์— props.bg๊ฐ€ blue๋ฉด font์ƒ‰์ƒ์€ white๋กœ ํ•ด์ฃผ์„ธ์š”. ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ฉด black์œผ๋กœ ํ•ด์ฃผ์„ธ์š”

let YellowBtn = styled.button`
  background : ${props=>props.bg};
  color: **${ props => props.bg == 'blue' ? 'white' : 'black'};**
  padding: 10px;
  `

๊ธฐ์กด styled component ๋ฐ›์•„์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ

let NewBtn = styled.button(YellowBtn)`
`

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด