Upload
-
View
175
Download
1
Embed Size (px)
Citation preview
웹디자인:kokoto에서의React,CSS Modules
React란무엇인가?
1
왜컴포넌트인가?
똑같은 코드를또다시
작성할 필요가없어진다
재사용성
컴포넌트가하는 일이
명확해지면서코드에
집중할 수 있다
관심사의분리
변수 이름 등이지역화되면서같은 변수명을
여러 곳에서사용할 수 있다
지역화
React란무엇인가?
1
Plain HTML
TemplateEngine
컴포넌트화가 불가능에 가깝다 <iframe>, <object> 태그??
컴포넌트 안에 스크립트와 스타일을포함하는 것이 가능해짐
구조는 분리 가능 (mixin) 스크립트나 스타일은 분리 불가
React
React란무엇인가?
1
어떻게컴포넌트화하는가?
이것만으로 다양한 상황에 대처 가능!
React란무엇인가?
1
부모로부터 상속받는속성(props)이 바뀌거나,컴포넌트의상태(state)가 바뀌면 업데이트
손쉽게동적인사용자인터페이스의구현이 가능
레벨이 바뀌니까 실제 표시 화면에도 적용되네!
CSS무엇이문제인가?
2
CSS : Cascading Style Sheets
클래스와 선택자의 1:1 매칭
CSS무엇이문제인가?
2문제 발생‘small’이라는 클래스 이름너무 일반적인 이름이라서, 재사용 문제
해결책 1CSS의상속기능 사용
전역 이름공간의 오염
“user-info의 자식 중small을 선택”
2
너~무길다!CSS무엇이문제인가?
문제 발생
2
보기에 안 좋다. 성능이 떨어진다.
(label 중 부모가 row 중 부모가 info 중…)
스타일 재사용이 불가능하다. 구조가 변경되면 스타일시트도 바뀐다.
CSS무엇이문제인가?
2해결책 2특징적인 이름을 (길더라도) 따로 붙인다.
CSS무엇이문제인가?
2해결책 2특징적인 이름을 (길더라도) 따로 붙인다.
상대적으로 나은 방법 (재사용, 구조 문제 해결) 일반적인 이름을 사용하지 못해서 불편하다. 일일이 이름을 생각해내야 한다.
CSS무엇이문제인가?
3
CSS ModulesCSSModules
CSS의 이름공간 포화를 막기 위한 대안 CSS를자동으로모듈화해줌으로써
대부분의 문제로부터 벗어날 수 있다
CSS 선택자는 간결하게 구성
자바스크립트 모듈을불러올 때와 같은 문법
클래스의 이름은style 객체의 키 이름으로
3
CSSModules
실제로 구성된 화면3
CSSModules
어떻게 구성하는가?3
CSSModules
webpack.config.js에 설정 [파일이름]__[클래스이름]__[base64 인코딩] 자유롭게 설정 변경 가능