72
React.js

React.js 세미나

Embed Size (px)

Citation preview

Page 1: React.js 세미나

React.js

Page 2: React.js 세미나

React.js 란?

Page 3: React.js 세미나

React.js 란?

• javascript 라이브러리

• Facebook 에서 만듦

• MVC의 V에 초점을 맞춤

Page 4: React.js 세미나

React.js 의 특징

Page 5: React.js 세미나

React.js 의 특징

• Just UI

• Virtual DOM

• Data Flow

Page 6: React.js 세미나

기본 사용

Page 7: React.js 세미나

기본 사용

Page 8: React.js 세미나

기본 사용

Page 9: React.js 세미나

기본 사용

Page 10: React.js 세미나

기본 사용

Page 11: React.js 세미나

기본 사용

Page 12: React.js 세미나

기본 사용

Page 13: React.js 세미나

기본 사용

Page 14: React.js 세미나

기본 사용

X

Page 15: React.js 세미나

기본 사용

O

Page 16: React.js 세미나

기본 사용

Page 17: React.js 세미나

기본 사용

Page 18: React.js 세미나

기본 사용

Page 19: React.js 세미나

JSX

Page 20: React.js 세미나

JSX

• Javascript + XML

• HTML문법으로 javascript object 를 생

• javascript 내부에 마크업 허용

Page 21: React.js 세미나

JSX

Page 22: React.js 세미나

JSX

Page 23: React.js 세미나

–Pete Hunt

“Separating html and js is separation

of technologies, not concerns.”

Page 24: React.js 세미나

state

Page 25: React.js 세미나

state

• 내부에서 사용되는 데이터

• 변경 가능(Mutable)

• 동적인 UI를 만드는데에 사용됨

Page 26: React.js 세미나

state

Page 27: React.js 세미나

state

Page 28: React.js 세미나

state

Page 29: React.js 세미나

state

Page 30: React.js 세미나

state

Page 31: React.js 세미나

state

Page 32: React.js 세미나

props

Page 33: React.js 세미나

props

• 외부에서 넘겨주는 데이터

• 컴포넌트의 어트리뷰트로 넘김

• 변경 불가능한 데이터 (Immutable)

Page 34: React.js 세미나

props

Page 35: React.js 세미나

props

Page 36: React.js 세미나

props

Page 37: React.js 세미나

props

Page 38: React.js 세미나

props

Page 39: React.js 세미나

props

Page 40: React.js 세미나

props

Page 41: React.js 세미나

props.children

Page 42: React.js 세미나

props.children

Page 43: React.js 세미나

props.children

Page 44: React.js 세미나

Virtual DOM

Page 45: React.js 세미나

Virtual DOM

• 가상의 DOM을 만들어 관리

• 업데이트가 필요한 부분만 변경

• 성능관리를 자동으로 해줌

• 서버에서 DOM을 미리 랜더링

Page 46: React.js 세미나

Virtual DOM

Page 47: React.js 세미나

Virtual DOM

Page 48: React.js 세미나

Virtual DOM

Page 49: React.js 세미나

Virtual DOM

Page 50: React.js 세미나

Virtual DOM

Page 51: React.js 세미나

Virtual DOM

Page 52: React.js 세미나

Lifecycle Methods

Page 53: React.js 세미나

Lifecycle Methods -Mount

getDefaultProps

componentWillMount

getInitialState

render

componentDidMount

Page 54: React.js 세미나

Lifecycle Methods -Mount

Page 55: React.js 세미나

Lifecycle Methods -Update

componentWillReceiveProps

componentWillUpdate

shouldComponentUpdate

render

componentDidUpdate

Page 56: React.js 세미나

Lifecycle Methods -Update

Page 57: React.js 세미나

권장 사항

Page 58: React.js 세미나

권장 사항

Page 59: React.js 세미나

권장 사항

Page 60: React.js 세미나

권장 사항

Page 61: React.js 세미나

CSS 처리

Page 62: React.js 세미나

CSS 처리

• React 에서 제공되는 Inline Style 사용

• Isomorphic CSS style loader

Page 63: React.js 세미나

CSS 처리

Page 64: React.js 세미나

CSS 처리

Page 65: React.js 세미나

CSS 처리

Page 66: React.js 세미나

CSS 처리

Page 67: React.js 세미나

사용 사례

Page 68: React.js 세미나

사용 사례

• 사이트 리스트 :

https://github.com/facebook/react/w

iki/Sites-Using-React

• 개발자 도구 :

https://github.com/facebook/react-

devtools

Page 69: React.js 세미나

참고 URL

Page 70: React.js 세미나

참고 URL• 이 발표의 소스코드 : http://codepen.io/collection/DBadre/

• 한글 사이트 : http://reactkr.github.io/react/docs/getting-started.html

• 개념잡기 좋은 사이트: http://goo.gl/GeQke7

• wordpress가 php를 버리고 react.js를 선택한 이유 : http://goo.gl/MGXC9B

• browserify vs webpack :

http://blog.coderifleman.com/post/112564054684/browserify%EC%99%80-webpack

• react.js 와 webpack 으로 세팅하기 : https://goo.gl/ct8lBl

• airbnb react 적용 : http://goo.gl/MnA63A

• 머티리얼 UI : http://www.material-ui.com/

• react 사용 사이트 리스트 : https://github.com/facebook/react/wiki/Sites-Using-React

• 개발자도구 : https://github.com/facebook/react-devtools

• Isomorphic CSS style loader : https://github.com/kriasoft/isomorphic-style-loader

Page 71: React.js 세미나

Q&A

Page 72: React.js 세미나

THANK YOU