재사용 할수 있는 UI component
조립해 나아가는 부품단위 UI 컴포넌트를 만들어 나가는 개발
UI 개발 즉, Component Driven Development를 하기 위한 도구
UI 컴포넌트를 집중적으로 개발
각각의 컴포넌트들을 따로 볼 수 있다.
Storybook은 재사용성을 확대하기 위해 컴포넌트를 문서화하고, 자동으로 컴포넌트를 시각화하여 시뮬레이션할 수 있는 다양한 테스트 상태를 확인할 수 있다. —> 이를 통해 버그를 사전에 방지
테스트 및 개발 속도를 향상시키는 장점이 있으며, 애플리케이션 또한 의존성을 걱정하지 않고 빌드
CSS가 구조적으로 작성될 수 있게 도움을 주는 도구
SASS?
Syntactically Awesome Style Sheets의 약자로 CSS를 확장해 주는 스크립팅 언어
반복되는 코드를 한번의 선언으로 여러 곳에서 재사용
CSS 방법론으로는 BEM
BEM이란 Block, Element, Modifier로 구분하여 클래스명을 작성하는 방법이며, Block, Element, Model 각각은 —와 __로 구분
기능적(Functional) 혹은 상태를 가진 컴포넌트들로부터 UI를 완전 분리해 사용할 수 있는 아주 단순한 패턴을 제공
컴포넌트 기반으로 CSS작성을 도와주는 라이브러리
syled Component
const Button = styled.a` //. 태그의 속성정의 a tag
`;
`백틱 사용`
리액트에서 사용
package.json에 다음 코드를 추가 여러버전 추가되는것 방지
{
"resolutions": {
"styled-components": "^5"
}
}
특징
스타일 속성을 지닌 컴포넌트를 정의할 때에 함수를 전달하고, 그 함수 안에서 props 를 사용할 수 있다.
const Button = styled.button`
background: ${(props) => (props.primary ? "palevioletred" : "white")};
color: ${(props) => (props.primary ? "white" : "palevioletred")};
...
`;
App(){
return(
<Buttion primary>Primary</Button>
)
컴포넌트에 props 로 스타일 속성이 전달된다면 해당 컴포넌트는 props 로 전달된 속성을 우선 적용하며, 전달되는 속성이 없다면 기본으로 설정된 속성을 적용
컴포넌트 정의 시 상황(새로운 컴포넌트 생성 or 기존 컴포넌트 상속)에 따라 온점 . 또는 () 중 하나만 사용해야 한다.