- React 컴포넌트 스타일링
@@ 오늘은 어제에 이어 컴포넌트 스타일링, CSS 모듈화에 대해서 배웠다. 서적을 보면서 실습해보면서 진행했다. module파일을 작성하고 적용하는 방법과 JS 안에 css 작성을 하는 라이브러리 styled-component에 대해서 배웠다. Tagged Template Literals 문법에 대해서 처음 접하는데, 동적 스타일링을 구성하는데 여러모로 편리하겠다는 생각이 들었다.
webpack css-loader를 이용하여 일반 CSS 를 불러오는 방식
컴포넌트 스타일링에서 자주 사용하는 방법
Sass (css pre-processor)
자주 사용하는 CSS 전처리기중 하나, 확장된 CSS문법을 사용하여 CSS 코드를 더욱 쉽게 작성
sass 를 CSS 로 변환해준다.
sass-load 커스터 마이징은 여기 참조
yarn eject를 통해 꺼내진 webpack.config.js 에서 sassRegex부분을 아래와 같이 교체하면, 복잡한 상대경로(../../../) 제거하더라도 sass를 불러올 수 있다
{
test: sassRegex,
exclude: sassModuleRegex,
use: getStyleLoaders({
importLoaders: 2,
sourceMap: isEnvProduction && shouldUseSourceMap
}).concat({
loader: require.resolve('sass-loader'),
options: {
prependData: "@import 'utils';",//scss파일을 읽어들일 때마다 이 구문을 추가하도록
sassOptions: {
includePaths: [paths.appSrc + '/styles'],
sourceMap: isEnvProduction && shouldUseSourceMap
}
}
}),
sideEffects: true
}
sass 관련 라이브러리를 불러오는 방법
CSS module
모듈화된 CSS로 CSS클래스를 만들면 자동으로 고유한 클래스 네임 생성, 스코프를 지역적으로 제한해준다
styled-components
JS코드 내부에서 스타일 정의
Tagged Template Literals 문법
함수 인자를 파싱하여 넘겨준다.
// styled-components
const Title = styled.h1`
font-size: 1.5em;
text-align: center;
color: palevioletred;
`;
자바스크립트 표현을 끊어서 처리하기에 함수가 함수 형태 그대로 배열안에 들어가게 된다. 이에 따라 styled-compoent가 끊어진 값들을 참조해서 스타일을 정상적으로 처리한다
동적 스타일링에 유리
출처: 리액트를 다루는 기술, 김민준 저, 2018