4. Styled-components
keyword
styled-componets
1. styled-componets
대표적인 CSS-in-JS 라이브러리
CSS 작성을 컴포넌트로 사고할 수 있는 장점
sc라는 접두사가 붙은 유니크한 class name을 생성함
React 컴포넌트에서 전달받은 props를 통해 동적으로 스타일 변경 가능
Tagged templates literals을 사용해 함수 형태로 사용할 수 있다.
사용법
Tagged templates은 함수로 파싱할 수 있어 아래와 같이 함수 표현식 사용이 가능하다.
추가 키워드
Tagged templates literals 링크
템플릿 리터럴의 발전된 형태로 태그를 사용하면 템플릿 리터럴을 함수로 사용할 수 있다. 태그 함수의 첫 번째 파라미터는 정적 문자열의 배열을 나머지 파라미터엔 동적 데이터인 표현식을 전달받는다.
with Babel
next.js는 SSR(Server Side Rendering) 프레임워크로 서버에서 pre-redering된 HTML 문서를 제공한다. 이를 통해 검색 엔진이 웹 사이트를 분석할 수 있도록 검색 엔진 최적화(SEO)를 제공한다.
초기 서버 사이드 렌더링 후 클라이언트 사이드 렌더링이 발생할 때 styled-components의 class name의 해시값이 서버와 클라이언트 간에 불일치할 수 있어 에러가 발생한다. 이는 babel-plugin-styled-components
를 사용해 서버와 클라이언트 간에 일관된 class name을 생성해 문제를 해결할 수 있다.
또한, 보다 편리한 디버깅을 위해 컴포넌트 이름을 class name의 해쉬값 접두사로 추가한다.
Last updated