발렌타인 웨비너 7회 - react를 이용한 웹 앱 개발 살펴보기

43
React + https://dalinaum.github.io

Upload: dohyun-jung

Post on 08-Jan-2017

3.594 views

Category:

Software


7 download

TRANSCRIPT

Page 1: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

React +https://dalinaum.github.io

Page 2: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

https://facebook.github.io/react/docs/why-react.html

Page 3: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

https://twitter.com/sebmarkbage/status/632257978003951616

Page 4: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

React

Page 5: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

JSXTransformer에서 Babel로

• JSXTransformer는 폐기됩니다.

• https://facebook.github.io/react/blog/2015/07/03/react-v0.14-beta-1.html

• 대신에 브라우저 버전의 Babel을 사용하세요.

• Babel has a built-in JSX transpiler.

• https://babeljs.io/docs/usage/browser/

Page 6: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

• npm install babel-core

• <script src=“JSXTransformer.js”> 대신<script src=“browser.js”>을 쓰세요.

• type=“text/jsx"대신 type=“text/babel”을 쓰세요.

Page 7: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Hello

Page 8: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기
Page 9: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Composition

Page 10: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Prop Validation

Page 11: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기
Page 12: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Default Prop

Page 13: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Mixins

Page 14: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

폼• 폼 컴포넌트는 사용자 상호작용을 통해 영향을 받는 몇 가지 props를 지원합니다.

• value: <input>, <textarea> 컴포넌트에서 사용가능.

• checked: checkbox, radio타입의 <input> 컴포넌트에서 사용가능.

• selected: <option> 컴포넌트에서 사용가능.

• HTML에서는 <textarea> 태그의 값을 설정할 때 <textarea> 태그의 자식이 사용되지만, React에서는 value 를 사용해야 합니다.

• 폼 컴포넌트는 onChange prop의 콜백을 설정하여 변경을 감시(listening)할 수 있습니다. onChange prop는 브라우저에 관계없이 다음과 같은 사용자 상호작용에 반응합니다.

• <input>, <textarea>의 value 변경.

• <input>의 checked state 변경.

• <option>의 selected state 변경.

Page 15: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기
Page 16: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

findDOMNode와 refs

Page 17: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

ES6 class

오토 바인딩과 믹스인이 안되는 단점은 있음.

Page 18: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기
Page 19: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

React.Component + Auto Binding

Page 20: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

ES6 + Manual bind

Page 21: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

ES7

Page 22: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

=>

Page 23: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Animation

Page 24: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

생명주기• Mounting

• getInitialState()

• componentWillMount()

• componentDidMount()

• Updating

• componentWillReceiveProps(object nextProps)

• shouldComponentUpdate(object nextProps, object nextState)

• componentWillUpdate(object nextProps, object nextState)

• componentDidUpdate(object prevProps, object prevState)

• Unmounting

• componentWillUnmount()

Page 25: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Without Router

https://rackt.github.io/react-router/

Page 26: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기
Page 27: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

With React Router

https://rackt.github.io/react-router/

Page 28: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기
Page 29: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

개발도구• React Devtools

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

• https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi

• https://addons.mozilla.org/en-US/firefox/addon/react-devtools/

• 프로파일러 - http://reactkr.github.io/react/docs/perf-ko-KR.html

Page 30: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

개발도구 Demo

• http://facebook.github.io/react/

Page 31: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

왜 Virtual DOM인가요?

• 비교조정에 대한 글: https://facebook.github.io/react/docs/reconciliation-ko-KR.html

• 개발자가 기고한 글: http://calendar.perfplanet.com/2013/diff/

Page 32: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Unidirectional blahblah… Flux?

Page 33: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

우린 Redux로 갑니다. Flux + Elm + 향상된 DX

http://staltz.com/unidirectional-user-interface-

architectures.html

Page 34: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Redux demo

• http://rackt.github.io/redux/docs/introduction/Examples.html#counter

• reducers와 actions을 살펴봄. (훨씬 심플하죠?)

Page 35: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Hot module replacement demo

• https://robots.thoughtbot.com/setting-up-webpack-for-react-and-hot-module-replacement

Page 36: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

React route demo

• http://jmfurlott.com/tutorial-setting-up-a-single-page-react-web-app-with-react-router-and-webpack/

Page 37: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

React isomorphic demo

• http://jmfurlott.com/tutorial-setting-up-a-simple-isomorphic-react-app/

Page 38: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Electron

• Electron demo

Page 39: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

React Native demo

• https://facebook.github.io/react-native/

Page 40: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Relay와 GraphQL?• https://github.com/relayjs/relay-starter-kit

Page 41: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

react.careers

Page 42: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

react.rocks

Page 43: 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

참고

• React 한글 버전 문서:http://reactkr.github.io/react/docs/getting-started-ko-KR.html

• Flux 한글 버전 문서:http://haruair.github.io/flux/docs/overview.html#content

• 페이스북 그룹 React Korea와 Reactist