SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
컴포넌트스타일
임광규
2020.ReactJS 1
스타일링방식
컴포넌트에대한스타일링방식중다음에대하여알아봅니다.
일반CSS:컴포넌트를스타일링하는가장기본적인방식
Sass:자주사용되는CSS전처리기(per-processor)중하나로확장된CSS문법을사용하여
CSS코드를더욱쉽게작성할수있도록지원
CSSModule:스타일을작성할때CSS클래스가다른CSS클래스의이름과절대퉁돌하지않
도록고유한이름을자동으로생성해주는옵션
styled-components:스타일을자바스크립트파일에내장시키는방식으로스타일을작성함
과동시에해당스타일이적용된컴포넌트를만들수있도록지원
2020.ReactJS 2
일반CSS
css파일을import하여사용하는방식입니다.
className(html에서는class)이름이나TAG,id등을기반으로스타일을정의합니다.
사용법
import './App.css';
2020.ReactJS 3
Sass
Sass(SyntacticallyAwesomeStyleSheets)는CSS전처리기로복잡한작업을쉽게할수
있도록해주고스타일코드의재활용성을높여줄뿐만아니라코드의가독성을높여서유지보
수를더욱쉽게합니다.
파일확장자는.sass또는.scss로구분되며두확장자의문법이다릅니다.
2020.ReactJS 4
.sassvs.scss
Sass는두가지확장자를지원합니다.두문법의차이는.sass는중괄호({})와세미콜론(;)을사
용하지않습니다.반면.scss는기존CSS를작성하는방식과문법이크게다르지않습니다.
.sass
$font-stack: sans-serif
body
front: 100% $font-stack
.scss
$font-stack: sans-serif;
body {
front: 100% $font-stack;
}
2020.ReactJS 5
node-sass설치
Sass를사용하기위해서는node-sass라는라이브러리를설치해주어야합니다.
이라이르버리는Sass를CSS로변환해줍니다.
$ yarn add node-sass
or
$ npm i node-sass
2020.ReactJS 6
CSSModule
CSSModule는CSS를불러와서사용할때클래스이름을고유한값,[파일이름]_[클래스이
름]__[해시값]형태로만들어서컴포넌트스타일클래스이름이중첩되는현상을방지해주는기
술입니다.
따로설정필요없이확장자를 [컴포넌트이름].module.css 로저장하면적용됩니다.
2020.ReactJS 7
사용예제
CSSModule.module.css
.wrapper {
background: black;
padding: 1rem;
color: white;
}
CSSModule.js
import React from 'react';
import styles from './CSSModule.module.css';
console.log(styles);
export default () => {
return <div className={styles.wrapper}>안녕하세요</div>
}
2020.ReactJS 8
결과예제
styles객체에는css를key-value형태로변환한JSON객체가있습니다.
{wrapper: "CSSModule.wrapper__2DaeQ" }
2020.ReactJS 9
classnames
classnames라이브러리는CSS클래스를조건부로설정할때매우유용한라이브러리입니다.
$ yarn add classnames
사용예
import classNames from 'classnames';
classNames('one', 'two'); // = 'one two'
classNames('one', {two:true}); // = 'one two'
classNames('one', {two:false}); // = 'one'
classNames('one', ['two', 'three']); // = 'one two three'
2020.ReactJS 10
sass와함께사용이가능합니다.
sass를사용할때도파일이름뒤에.module.scss확장자를사용해주면CSSModule로사용
할수있습니다.
2020.ReactJS 11
localglobal
:global:웹페이지전역에서사용되는경우사용
:local:CSSModule이아닌파일에서CSSModule사용할경우사용
:global .wrapper {
/* 스타일 */
}
:local .wrapper {
/* 스타일 */
}
2020.ReactJS 12
styled-components
자바스크립트파일안에스타일을선언하는방식입니다.
여러방식을CSS-in-JS라고부르며이와관련된라이브러는정말많습니다.
이중styled-components는가장많이사용되고있습니다.
설치
$ yarn add styled-components
2020.ReactJS 13
사용예
import React from 'react';
import styled, { css } from 'styled-components';
const Box = styled.div`
/* props로 넣어 준 값을 직접 전달해 줄 수 있습니다. */
background: ${props => props.color || 'blue'};
padding: 1rem;
display: flex;
`;
export default () => <Box color="black">테스트</Box>
2020.ReactJS 14
styled-components장점
.props를이용할수있다.
props로전달받은값을쉽게스타일에적용가능
props를참조하여조건부스타일링가능
.스타일된컴포넌트를제작할수있다.
재활용이가능한컴포넌트를생성
.템플릿문자를이용하여중복되는부분을간단하게사용
2020.ReactJS 15
참고자료
다양한방식의리액트컴포넌트스타일링방식CSS,Sass,CSSModule,styled-
components
2020.ReactJS 16

Contenu connexe

Similaire à 9.component style

[EWD2014]CLASS05
[EWD2014]CLASS05[EWD2014]CLASS05
[EWD2014]CLASS05JY LEE
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지yongwoo Jeon
 
Web Standards Seminar 2006
Web Standards Seminar 2006Web Standards Seminar 2006
Web Standards Seminar 2006Taeyoung Yoon
 
CSS 다시 파서 어디에 쓰나
CSS 다시 파서 어디에 쓰나CSS 다시 파서 어디에 쓰나
CSS 다시 파서 어디에 쓰나Chang W. Doh
 
웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)ymtech
 
Bootstrap 살펴보기
Bootstrap 살펴보기Bootstrap 살펴보기
Bootstrap 살펴보기영배 현
 
[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기NAVER D2
 
디자인 시스템 디자인하기
디자인 시스템 디자인하기디자인 시스템 디자인하기
디자인 시스템 디자인하기sangyong lee
 
The LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language BasicThe LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language Basicjeong seok yang
 
HTML과 CSS
HTML과 CSSHTML과 CSS
HTML과 CSSdgmong
 
Bootstrap에 대해서 정기철
Bootstrap에 대해서 정기철Bootstrap에 대해서 정기철
Bootstrap에 대해서 정기철Kichul Jung
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)SangIn Choung
 

Similaire à 9.component style (20)

Compass 사용법
Compass 사용법Compass 사용법
Compass 사용법
 
Compass
CompassCompass
Compass
 
[EWD2014]CLASS05
[EWD2014]CLASS05[EWD2014]CLASS05
[EWD2014]CLASS05
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 
Web Standards Seminar 2006
Web Standards Seminar 2006Web Standards Seminar 2006
Web Standards Seminar 2006
 
CSS 다시 파서 어디에 쓰나
CSS 다시 파서 어디에 쓰나CSS 다시 파서 어디에 쓰나
CSS 다시 파서 어디에 쓰나
 
웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)
 
Bootstrap 살펴보기
Bootstrap 살펴보기Bootstrap 살펴보기
Bootstrap 살펴보기
 
[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기
 
Web_03_Front-end Advance
Web_03_Front-end AdvanceWeb_03_Front-end Advance
Web_03_Front-end Advance
 
디자인 시스템 디자인하기
디자인 시스템 디자인하기디자인 시스템 디자인하기
디자인 시스템 디자인하기
 
The LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language BasicThe LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language Basic
 
03 jsx
03 jsx03 jsx
03 jsx
 
Masonry
MasonryMasonry
Masonry
 
HTML과 CSS
HTML과 CSSHTML과 CSS
HTML과 CSS
 
Bootstrap에 대해서 정기철
Bootstrap에 대해서 정기철Bootstrap에 대해서 정기철
Bootstrap에 대해서 정기철
 
CSS Reset
CSS ResetCSS Reset
CSS Reset
 
Asp.net Razor
Asp.net Razor Asp.net Razor
Asp.net Razor
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
 
TailwindCSS
TailwindCSSTailwindCSS
TailwindCSS
 

Plus de Daniel Lim

내가 생각하는 개발자란?
내가 생각하는 개발자란?내가 생각하는 개발자란?
내가 생각하는 개발자란?Daniel Lim
 
개발자를 넘어 기술 리더로 가는 길을 읽고
개발자를 넘어 기술 리더로 가는 길을 읽고개발자를 넘어 기술 리더로 가는 길을 읽고
개발자를 넘어 기술 리더로 가는 길을 읽고Daniel Lim
 
스크럼 101
스크럼 101스크럼 101
스크럼 101Daniel Lim
 
nodejs_101.pdf
nodejs_101.pdfnodejs_101.pdf
nodejs_101.pdfDaniel Lim
 
피드백 시스템
피드백 시스템피드백 시스템
피드백 시스템Daniel Lim
 
12.context api
12.context api12.context api
12.context apiDaniel Lim
 
11.react router dom
11.react router dom11.react router dom
11.react router domDaniel Lim
 
7.component life cycle
7.component life cycle7.component life cycle
7.component life cycleDaniel Lim
 
6.component repeat
6.component repeat6.component repeat
6.component repeatDaniel Lim
 
4.event handling
4.event handling4.event handling
4.event handlingDaniel Lim
 
3.component 101
3.component 1013.component 101
3.component 101Daniel Lim
 
Kubernetes object에 대하여
Kubernetes object에 대하여Kubernetes object에 대하여
Kubernetes object에 대하여Daniel Lim
 

Plus de Daniel Lim (20)

내가 생각하는 개발자란?
내가 생각하는 개발자란?내가 생각하는 개발자란?
내가 생각하는 개발자란?
 
개발자를 넘어 기술 리더로 가는 길을 읽고
개발자를 넘어 기술 리더로 가는 길을 읽고개발자를 넘어 기술 리더로 가는 길을 읽고
개발자를 넘어 기술 리더로 가는 길을 읽고
 
스크럼 101
스크럼 101스크럼 101
스크럼 101
 
nodejs_101.pdf
nodejs_101.pdfnodejs_101.pdf
nodejs_101.pdf
 
For You
For YouFor You
For You
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
 
피드백 시스템
피드백 시스템피드백 시스템
피드백 시스템
 
13.code split
13.code split13.code split
13.code split
 
12.context api
12.context api12.context api
12.context api
 
11.react router dom
11.react router dom11.react router dom
11.react router dom
 
7.component life cycle
7.component life cycle7.component life cycle
7.component life cycle
 
8.hooks
8.hooks8.hooks
8.hooks
 
6.component repeat
6.component repeat6.component repeat
6.component repeat
 
4.event handling
4.event handling4.event handling
4.event handling
 
5.ref 101
5.ref 1015.ref 101
5.ref 101
 
3.component 101
3.component 1013.component 101
3.component 101
 
2.jsx 101
2.jsx 1012.jsx 101
2.jsx 101
 
1.react 101
1.react 1011.react 101
1.react 101
 
CuKu V1.3
CuKu V1.3CuKu V1.3
CuKu V1.3
 
Kubernetes object에 대하여
Kubernetes object에 대하여Kubernetes object에 대하여
Kubernetes object에 대하여
 

9.component style