패키지란, React에는 없는 기능이지만 우리가 추가로 가져와서 사용할 수 있는 써드파티 프로그램 입니다. 패키지들은 누군가에 의해 만들어진 것으로 npm에 모여 있어요. 우리는 사용하고자 하는 패키지를 npm install 또는 yarn add 를 통해서 설치해서 사용할 수 있어요. 앞으로 이렇게 React에서 자체적으로 제공하지 않지만, 사용하면 우리가 개발하는데 더 유용한 여러 패키지를 사용해볼 예정입니다
; 이 부분입니다. 처음보면 참 이상하게 생겼죠? 하지만 이 방식대로 styled-components를 만드는 것이 맞습니다! **참고로
은 따옴표가 아니라 '백틱'** 이라는 문자입니다. ~ 을 입력할 때 쉬프트 키를 누르지 않으면 백틱을 사용할 수 있습니다.div ➡️ styled.divbutton ➡️ styled.button// src/App.jsimport React from "react";
// styled-components에서 styled 라는 키워드를 import 합니다.import styled from "styled-components";
// styled키워드를 사용해서 styled-components 방식대로 컴포넌트를 만듭니다.const StBox = styled.div`
// 그리고 이 안에 스타일 코드를 작성합니다. 스타일 코드는 우리가 알고 있는 css와 동일합니다.
width: 100px;
height: 100px;
border: 1px solid red;
margin: 20px;
`;
const App = () => {
// 그리고 우리가 만든 styled-components를 JSX에서 html 태그를 사용하듯이 사용합니다.return <StBox>박스</StBox>;
};
export default App;
먼저 styled-component를 생성합니다.
const StBox = styled.div``;
그리고 생성한 styled-component를 부모 컴포넌트에서 사용합니다. 여기서 부모컴포넌트는 App.js 이겠군요.
const App = () => {
return (
<div>
<StBox>빨간 박스</StBox>
<StBox>초록 박스</StBox>
<StBox>파랑 박스</StBox>
</div>
);
};
그리고 이제 우리가 원하는 값, 즉 borderColor를 props로 자식컴포넌트, 여기서는 자식컴포넌트가 styled-components 겠죠? StBox 에 전달합니다.
const App = () => {
return (
<div>
<StBox borderColor="red">빨간 박스</StBox>
<StBox borderColor="green">초록 박스</StBox>
<StBox borderColor="blue">파랑 박스</StBox>
</div>
);
};
부모 컴포넌트에서 props를 보냈습니다. 자식 컴포넌트에서는 받아야겠죠? 아래와 같은 모양으로 받습니다. 순서대로 어떻게 된건지 알아볼까요?
const StBox = styled.divborder: 1px solid ${(props) => props.borderColor};
;
width: 100px; height: 100px; border: 1px solid ${(props) => props.borderColor}; // 4.부모 컴포넌트에서 보낸 props를 받아 사용합니다. margin: 20px;
; const App = () => { return (