props์ attrs
Props
ํ์ฑํ ์ฌ๋ถ๋ฅผ ํํํ๊ฑฐ๋ ํน์ ์คํ์ผ์ ์ก์์ค ๋ ์ ์ฉํ๋ค.
import styled, { css } from "styled-components";
import { useBoolean } from "usehooks-ts";
type ButtonProps = {
active: boolean,
};
// ์ด๋ ๊ฒ ํด๋ ๋๊ณ
function background(props: ButtonProps) {
return props.active ? "#00F" : "#FFF";
}
// ๋ด๋ถ์ ์จ๋ ๋๋ค.(์ด๋ฏธ ํ์
์ด ์ง์ ๋์ด ์์ผ๋ฏ๋ก ๋ํด์ค ํ์์์)
const Button =
styled.button <
ButtonProps >
`
background: #FFF;
color: #000;
border: 1px solid ${(props) => (props.active ? "#F00" : "#888")};
${(props) =>
props.active &&
css`
background: #f00;
color: #fff;
`}
`;
export default function Switch() {
const { value: active, toggle } = useBoolean(false);
return (
<Button type="button" onClick={toggle} active={active}>
On/Off
</Button>
);
}props.active && css์์ css ๋ ์จ๋ ๋๊ณ ์์จ๋ ๋๋ค. ํ์ ํ์ฅ์ ๋์์ ๋ฐ๊ธฐ์ํด ์ฌ์ฉํ ๋ฟ์ด๋ค.
๊ณต์ ๋ฌธ์ ์์
input ์ปดํฌ๋ํธ์ ๋ชจ๋ ํ๋กํผํฐ๊ฐ DOM ๋ ธ๋์ ์ ๋ฌ๋๋ค.
์ฌ๊ธฐ์ inputColor prop์ DOM์ ํตํ์ง ์์ง๋ง type๊ณผ defaultValue๋ DOM์ ํตํ๋ค. ๋นํ์ค ์์ฑ์ ์๋์ผ๋ก ํํฐ๋ง๋๋ ๊ฒ์ด๋ค.
attrs
attrs๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฑ์ ๋ํ๋ผ ์ ์๋ค. ๋ฒํผ์์ ๋๊ฒ ์์ฃผ ์ฐ์ธ๋ค.
๊ณต์ ์ฌ์ดํธ ์์
Last updated