티스토리 뷰
React 프로젝트 환경을 구축하기 위해서 node.js의 여러 라이브러리들을 이용하여 사용하겠습니다.
준비사항
React는 컴포넌트를 여러가지 파일로 분리하여 저장하고 js가 아닌 jsx라는 문법을 사용할 것입니다.
- Webpack : 여러가지 분리된 파일 하나로 합쳐주는 라이브러리
- Babel : jsx를 비롯한 새로운 js 문법을 사용하기 위한 라이브러리
- Node.js : Webpack과 Babel 등 여러 라이브러리를 사용하기 위한 javascript 런타임
- Yarn : 캐싱 시스템 등 조금 더 개선된 npm(node package manager)
- Visual Studio Code : 실제 개발을 위해 필요한 에디터 (공짜)
다음 준비사항들의 설치 과정은 생략하겠습니다.
CRA(create-react-app)
초심자가 React를 처음부터 설정하기는 상당히 복잡한 작업이 필요합니다. 페이스북에서 제공하는 CRA를 통해 작업 환경을 구축하도록 하겠습니다. 다음 명령어를 사용하여 CRA를 설치할 수 있습니다.
1 2 3 4 5 | // npm을 이용한 설치 npm install -g create-react-app // yarn을 이용한 설치 yarn global add create-react-app | cs |
CRA 사용법
터미널에서 작업 영역에서 이동하여 명령어를 통해 한 번에 프로젝트를 설치합니다.
1 | create-react-app cra-install-test | cs |
실행
다음 명령어를 통해 프로젝트를 실행할 수 있습니다.
1 2 | cd cra-install-test yarn start | cs |
실행 후 자동으로 해당 페이지가 로드됩니다.
프로젝트 구조
CRA 프로젝트를 VS Code로 실행해봅시다. 다음과 같은 구성으로 되어있을 것입니다.
여기서 컴포넌트인 App.js를 열어봅니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import React, { Component } from 'react'; import logo from './logo.svg'; import './App.css'; class App extends Component { render() { return ( <div className="App"> <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <p> Edit <code>src/App.js</code> and save to reload. </p> <a className="App-link" href="https://reactjs.org" target="_blank" rel="noopener noreferrer" > Learn React </a> </header> </div> ); } } export default App; | cs |
크게 세 부분으로 나눠서 보겠습니다.
1 2 3 | import React, { Component } from 'react'; import logo from './logo.svg'; import './App.css'; | cs |
파일에서 jsx 문법을 사용하려면 React를 꼭 import 해주어야 합니다. 또한 Webpack을 사용하고 있기 때문에 logo.svg와 App.css를 다음과 같이 불러올 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class App extends Component { render() { return ( <div className="App"> <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <p> Edit <code>src/App.js</code> and save to reload. </p> <a className="App-link" href="https://reactjs.org" target="_blank" rel="noopener noreferrer" > Learn React </a> </header> </div> ); } } | cs |
컴포넌트를 만드는 방법 중 하나인 클래스를 이용한 방법입니다. 클래스 형태는 꼭 render() 라는 함수가 있어야 하고, 그 내부에서는 jsx를 반환해 주어야합니다. return 뒤의 HTML 같은 코드가 jsx 입니다.
1 | export default App; | cs |
이렇게 작성된 컴포넌트를 다른 곳에서 불러서 사용할 수 있게 하기위해 해당 코드가 필요합니다.
다음은 index.js를 열어봅니다.
1 2 3 4 5 6 7 8 9 10 11 12 | import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import * as serviceWorker from './serviceWorker'; ReactDOM.render(<App />, document.getElementById('root')); // If you want your app to work offline and load faster, you can change // unregister() to register() below. Note this comes with some pitfalls. // Learn more about service workers: http://bit.ly/CRA-PWA serviceWorker.unregister(); | cs |
우리가 만든 App 컴포넌트를 다음과 같이 사용합니다.
1 | import App from './App'; | cs |
브라우저 상에 React 컴포넌트를 보여주기 위해서 ReactDOM.render(렌더링 결과물, 그릴 DOM) 함수를 사용합니다.
1 | ReactDOM.render(<App />, document.getElementById('root')); | cs |
위의 코드는 public/index.html 파일에 있는 id가 'root'인 DOM을 찾아 App 컴포넌트를 렌더링 해줍니다.
References
[Velopert 블로그 리액트 시작하기] https://velopert.com/3621
[Velopert 블로그 JSX-컴포넌트 파일 파헤치기] https://velopert.com/3626
'프로그래밍 > React' 카테고리의 다른 글
[예제]간단한 가계부1 - input 상태 관리 (0) | 2019.02.06 |
---|---|
[문법]Life Cycle API (0) | 2019.02.04 |
[문법]props와 state (0) | 2019.01.31 |
[문법]JSX (0) | 2019.01.29 |
React란? (0) | 2019.01.29 |
- Total
- Today
- Yesterday
- #예제 #example #가계부 #Account Book
- 목표
- java14
- modern java
- flatMapToDouble
- 다짐
- 자바
- flaMap
- #배열 #array #map 함수
- 스트림
- flatMapToInt
- mapToObj
- 계획
- 중간 연산
- 람다
- IntelliJ
- 변경사항
- 회고
- 충북 콕! 콕!
- Java8
- 익명 클래스
- 토이 프로젝트
- java
- #React #ReactJS #리액트
- jdk14
- Stream API
- lambda
- 개발자
- import문
- flatMapToLong
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |