function App() {
return (
<>
<GlobalStyle />
<ScreenPage className='hidden-scroll'>
<h1>κ°μ Έλλλ₯ νλ‘μ νΈ</h1>
<Button size='L'>λ€μ</Button>
<TestBtn size='L'>λ€μ</TestBtn>
</ScreenPage>
</>
);
}
// μ€νμΌ μ€λ²λΌμ΄λ© κΈ°λ²
const TestBtn = styled(Button)`
&& {
/* height: 200rem; */
margin-top: 400px;
}
`;
μ€νμΌμ΄ λ¨Ήνμ§ μλλ€.
function App(**{className}**) {
return (
<>
<GlobalStyle />
<ScreenPage className='hidden-scroll'>
<h1>κ°μ Έλλλ₯ νλ‘μ νΈ</h1>
<Button size='L'>λ€μ</Button>
<TestBtn **className={className}** size='L'>λ€μ</TestBtn>
</ScreenPage>
</>
);
}
// μ€νμΌ μ€λ²λΌμ΄λ© κΈ°λ²
const TestBtn = styled(Button)`
&& {
/* height: 200rem; */
margin-top: 400px;
}
`;
const Button = ({ children, size, **className** }) => {
return (
<StyledButton **className={className}** size={size}>
{children}
</StyledButton>
);
};
μ΄λ° ννλ‘, className μ μ μΈμ ν΄λλ, styled-component μμ μμ±ν μ€νμΌμ΄ λ€μ΄μλ ν΄λμ€κ° λ€μ΄κ°λ€. λμ μΆμΈ‘μΌλ‘λ, ν΄λμ€ μ»΄ν¬λνΈλ₯Ό μ€μ μ νλ©΄ className μ΄ μμλ‘ μ€μ μ΄ λμ§λ§, μ΄μ λ className μ μΆκ°λ‘ μ§μ νλ κ²½μ°μλ κ²½λ‘λ₯Ό 미리 μ΄μ΄λμ΄μΌ λ¨Ήνλ λ―ν λλμ΄μλ€.
β styled-component μ className μ΄ μ€λ²λΌμ΄λ©νμ¬ μΆκ°λ₯Ό μν΄μλ, λ¨Όμ className μ μ§μ ν΄λμ΄μΌνλ€. ( κ²½λ‘λ₯Ό 미리 μ€μ ν΄ λλ νμμ΄λ€. )
{β¦rest} λ₯Ό ν΅νμ¬, μ§μ ν props μ μΈν λλ¨Έμ§ λ‘ λ΄λ €μ€λ κ°λ€μ λ€ λ°λ‘ μ μ₯μ ν΄λλ€λ©΄, μμ νλ className μ λ°λ‘ μλ°μλ λλ€. μ€νμΌλμ»΄ν¬λνΈκ° λ¨ΉμΈ ν΄λμ€λ€μ΄ β¦rest μ λ€μ΄κ° μ€μ μ΄ λκΈ°λλ¬Έμ΄λ€. (κ²½λ‘ μ€μ μ ν΄λ λλ)
const Button = ({ children, size, **...rest** }) => {
return (
<StyledButton size={size} **{...rest}**>
{children}
</StyledButton>
);
};