โ๏ธ styled-components
โ๏ธ ์ค์น
- ํฐ๋ฏธ๋ ์ด์ด์ npm install styled-components
- ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉํ๊ณ ์ถ์ ์ปดํฌ๋ํธ ๋งจ์์ ์๋์ฒ๋ผ import
import styled from 'styled-components'
โ๏ธ styled-components ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ
- ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ๋ ์คํ์ผ์ ๋ฏธ๋ฆฌ ์ฃผ์
ํด์ ๋ง๋ค ์ ์๋ค.
// padding : 20px์ธ div๋ฐ์ค
import styled from 'styled-components';
let Box = styled.div`
padding : 20px;
color : grey
`;
let YellowBtn = styled.button`
background : yellow;
color : black;
padding : 10px;
`;
function Detail(){
return (
<div>
<Box>
<YellowBtn>๋ฒํผ์</YellowBtn>
</Box>
</div>
)
}
1. <div>๋ฅผ ํ๋ ๋ง๋ค๊ณ ์ถ์ผ๋ฉด ์ ๋ ๊ฒ styled.div ๋ผ๋ ๊ฑธ ์ฌ์ฉํ๋ฉด ๋๋ค. <p> ๋ง๋ค๋ ค๋ฉด styled.p ์ด๋ฐ ์
2. ์ค๋ฅธ์ชฝ์ `` backtick ๊ธฐํธ๋ฅผ ์ด์ฉํด์ CSS ์คํ์ผ์ ๋ฃ์ ์ ์๋ค.
3. ๊ทธ๋ผ ๊ทธ ์๋ฆฌ์ ์ปดํฌ๋ํธ๋ฅผ ๋จ๊ฒจ์ฃผ๋๋ฐ ๋ณ์์ ์ ์ฅํด์ ์ฐ๋ฉด ๋๋ค.
โ๏ธ ์ฅ์
์ฅ์ 1. CSS ํ์ผ ์คํํ ํ์์์ด JS ํ์ผ์์ ๋ฐ๋ก ์คํ์ผ๋ฃ์ ์ ์๋ค.
์ฅ์ 2. ์ฌ๊ธฐ ์ ์ ์คํ์ผ์ด ๋ค๋ฅธ JS ํ์ผ๋ก ์ค์ผ๋์ง ์๋๋ค. ์๋ ๊ทธ๋ฅ CSSํ์ผ์ ์ค์ผ๋๋ค.
์ฅ์ 3. ์ ๊ธฐ ์ ์ ์คํ์ผ์ html ํ์ด์ง์ <style> ํ๊ทธ์ ๋ฃ์ด์ค์ ํ์ด์ง ๋ก๋ฉ์๊ฐ์ด ๋จ์ถ๋๋ค.
! ์ค์ ์ผ๋ฐ CSS ํ์ผ๋ ์ค์ผ๋ฐฉ์ง ๊ฐ๋ฅ
- App.css ํ์ผ์ ๋ง๋ค์ด์ App.js์์ importํด์ ์ด๋ค๊ณ ํด๋ ๊ฑฐ๊ธฐ ์ ์ ํด๋์ค๋ช
๋ค์ Detail.js๊น์ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค(์ค์ผ๋๋ ๊ฑฐ). ํ๋ก์ ํธ ์ฌ์ด์ฆ๊ฐ ์์ ๋ ํธ๋ฆฌํ๊ฒ ์ง๋ง ์ฌ์ด์ฆ๊ฐ ์ปค์ง๋ฉด ๊ด๋ฆฌํ๊ธฐ ํ๋ค์ด์ง.
- ๊ทธ๋ด ๋ styled-components ์จ๋ ๋์ง๋ง ๊ทธ๋ฅ CSSํ์ผ์์๋ ๋ค๋ฅธ JS ํ์ผ์ ๊ฐ์ญํ์ง ์๋ '๋ชจ๋ํ' ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ “์ปดํฌ๋ํธ๋ช
.module.css” ์ด๋ ๊ฒ CSS ํ์ผ์ ์๋ช
ํ๋ฉด ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ปดํฌ๋ํธ๋ช
.js ํ์ผ์์ import ํด์ ์ฐ๋ฉด ๊ทธ ์คํ์ผ๋ค์ ์ปดํฌ๋ํธ๋ช
.js ํ์ผ์๋ง ์ ์ฉ๋จ.
! ์ถ๊ฐ ๋ฌธ๋ฒ: props๋ก ์ฌํ์ฉ ๊ฐ๋ฅ
import styled from 'styled-components';
let YellowBtn = styled.button`
background : ${ props => props.bg }; // styled-components ์์์ props ๋ซ๋ ๋ฌธ๋ฒ
color : black;
padding : 10px;
`;
function Detail(){
return (
<div>
<YellowBtn bg="orange">์ค๋ ์ง์ ๋ฒํผ์</YellowBtn>
<YellowBtn bg="blue">ํ๋์ ๋ฒํผ์</YellowBtn>
</div>
)
}
- bg ๋ถ๋ถ์ ์์ ๋กญ๊ฒ ์๋ช
ํ๋ฉด ๋๊ณ ์ด์ ์ปดํฌ๋ํธ ์ธ ๋ bg๋ผ๋ props ์
๋ ฅ ๊ฐ๋ฅ
โ๏ธ ๋จ์
๋จ์ 1. JS ํ์ผ์ด ๋งค์ฐ ๋ณต์กํด์ง๋ค.
๋จ์ 2. JS ํ์ผ ๊ฐ ์ค๋ณต ๋์์ธ์ด ๋ง์ด ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ์ผ์์ ์คํ์ผ ๋ฃ์ ๊ฒ๋ค์ import ํด์์ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ ๊ทธ๋ผ CSS ํ์ผ์ ์ฐ๋ ๊ฒ๊ณผ ์ฐจ์ด๊ฐ ์๋ค.
๋จ์ 3. CSS ๋ด๋นํ๋ ๋์์ด๋๊ฐ ์๋ค๋ฉด ํ์
์ ๋ถํธํ๋ค.
๋ณธ ํฌ์คํ ์ << React ๋ฆฌ์กํธ ๊ธฐ์ด๋ถํฐ ์ผํ๋ชฐ ํ๋ก์ ํธ๊น์ง! >> ๊ฐ์๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.