— react.js, create-react-app, tutorial — 1 min read
Github : https://github.com/qvil/react-tutorial
Facebook이 만든 React.js가 무엇인지 예제를 통해서 알아보겠습니다.
이번 강의에서는
state
와props
에 대해서 알아보겠습니다.
A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES 출처 : React.js
Facebook이 만든 View에 집중한 프레임워크입니다. View를 Component화 시켜서 재사용가능하도록 만든 프레임워크입니다.
create-react-app은 Facebook에서 공식으로 권장하고, Redux를 만든 Facebook의 Dan abramov가 만든 보일러플레이트 입니다.
Node.js에서 LTS버전으로 설치해주세요. LTS버전은 안정적입니다. :)
아래 명령어로 설치할 수 있습니다. -g
는 global의 약자로 컴퓨터에 설치되어 전역으로 사용할 수 있다는 뜻 입니다.
1npm install -g create-react-app
아래 그림처럼 실행해보세요.
1create-react-app project-name
아직은 public부분은 신경쓰지마세요.
/src/index.js
가 시작점입니다.ES6문법을 사용하려면 webpack설정을 하고 babel로 컴파일 하는 방법을 사용하는데 create-react-app 패키지는 이 모든 과정을 자동으로 설정해줘서 react 진입장벽을 낮춰줍니다. 물론 나중에 config파일 설정도
npm run eject
명령을 이용해서 가능합니다. (이 글에서는 ES6 문법과 webpack 및 babel에 대해서는 다루지 않습니다.)
import는 ES2015(이하 ES6)에서 새로 나온 문법입니다.
state란 component 내부의 상태를 저장하고 관리하는 공간입니다.
constructor()
의 내부에 this.state = {}
형식으로 사용하시면 됩니다. constructor는 app이 처음 실행되면 실행되는 함수입니다. class와 constructor역시 ES6에서 등장한 문법입니다.
state를 사용할 때는 this.state.number
형식으로 사용하시면 됩니다.
아래 html과 비슷해 보이는 문법은 jsx문법으로써 텍스트는 html처럼 쓰고 프로그래밍적인 부분(변수, state 등)은 {}
중괄호로 묶고 사용하면 됩니다.
props
란 부모 컴포넌트에서 자식컴포넌트로 값을 넘겨줄 때 사용하는 속성입니다. 아래 예제를 참고하세요.
App.js가 부모, Header.js, Body.js가 자식 컴포넌트 입니다.
App.js
에서 자식 컴포넌트 Header.js
에게 props로 값을 넘겨줍니다. Body.js
에서 부모 컴포넌트 App.js
로 부터 받은 값을 constructor
의 super()
가 실행되는 순간 사용할 수 있게 됩니다. 아래와 같은 방법으로도 props
를 전달 받을 수 있습니다.
코드가 조금 다르죠? 이런 컴포넌트를 stateless component
라고 부르고 facebook에서는 권장합니다. 내부 state을 사용하지 않는다면 stateless component를 사용하는게 최적화도 잘되고 속도도 빠르다고 합니다.
state
props
Stateless Component
로 만들자.