본문 바로가기
JAVASCRIPT/React

[생활코딩 React 강의 1] 컴포넌트란? && React 기본 앱 뜯어보기 && 배포해보기

by sjs_2215 2019. 4. 24.

생활코딩 리액트 강의(이고잉님 thㅏ랑해요) -> https://www.youtube.com/playlist?list=PLuHgQVnccGMCRv6f8H9K5Xwsdyg4sFSdi

React

=페이스북이 만든 자바스크립트 ui 라이브러리

=사용자 정의 태그를 만들어주는 기술 중 하나


컴포넌트

='사용자 정의 태그'라고 생각

index.html
<html>
    <body>
        <Top></Top>
        <Sidebar></Sidebar>
    </body>
</html>

sidebar.html
~
사이드바 만드는 겁나 긴 코드

top.html
~
top 유아이 만드는 겁나 긴 코드 

index.html 파일을 보면 부분이나, 와 같은 태그를 '내가' 적어주면 웹 브라우저에게 전달될 때는 저절로 sidebar.html과 top.html로(겁나 긴 코드) 바뀔 수 있다면? 겁나 편리.

  • 이하 장점 들 정리

-가독성 정리 (=겁나 길고 복잡한 코드를 내가 정의한 컴포넌트로 표현할 수 있다는 것)

-재사용성(= 이라고 한 번 정의해놓으면 다른 곳에서도 여러 번 재사용 가능함)

-유지보수 편리(=top.html에서 수정할 것이 생겼다면, top.html 파일 한 곳에서만 고쳐주면 을 해놓은 모든 파일에도 같이 업데이트가 됨)

->컴포넌트 중심으로 웹 에플리케이션을 만드는 방법을 만들어보자!

->나도 컴포넌트 만들 수 있고, 남들이 만든 수많은 컴포넌트 써먹을 수 있다!


리액트 공식 문서 -> https://reactjs.org


개발환경 구축

-> https://velopert.com/3621

나는 vs code말고 atom 쓰기로 함
*버전 확인
node -v
9.11.2
npm -v
6.4.1
사용자 이름 한글이지만 이미 구축해 논 거 다시 하기 귀찮기 때문에 패스. 미래의 내가 해결하겠지1

React와 Atom 명령어

*새로운 리액트 앱 만들 때 cmd 명령어

cd C:\Users\내한글이름\Desktop\react-app
create-react-app hello-react

*리액트 앱 시작할 때 cmd 명령어

C:\Users\내한글이름\Desktop\react-app
cd hello-react(이름)
yarn start
또는
C:\Users\내한글이름\Desktop\react-app
npm run start/ npm start

*리액트 끌 때

ctrl + c

*확인 브라우저 uri

localhost:3000

*아톰 에디터 단축키

프로젝트 창 열기
Ctrl + \
사라진 메뉴바 다시 살리기
alt+v 누르고 view에서 toggle menu bar 클릭

*create-react-app 에러 날 때 환경변수 설정해주기

*내 리액트 앱들 위치

생코 강의들으며 실습한 앱들은 여기에
C:\Users\내한글이름\Desktop\react-app
예전 스터디할 때 실습한 앱들은
c:\Users\내한글이름/
(codesplitting, hello-react, new-react-counter, redux-starter-kit, react-router-tutorial)

*react-app폴더로 디렉터리 정하기

cmd에서 
cd C:\Users\내한글이름\Desktop\react-app
create-react-app .

  • npm

=node.js를 이용해서 만들어진 여러 앱들을 명령어 환경에서 손쉽게 설치할 수 있는 도구. (=node.js계의 앱스토어 느낌?)

  • npx

react 앱 만들 때 (리액트 깃헙) 이렇게 하는 방식도 있음

npx create-react-app my-app
cd my-app
npm start

create-react-app을 일회용으로 설치하고 지워버림.

장점) 항상 최신 버전. 실무에선 이거 쓰기~


create-react-app 기본 웹 뜯어 살펴보기

[index.html -> index.js -> App.js]

react 실행 후 뜨는 웹 페이지의 주소는 localhost:3000

사실 이건 http://localhost:3000/index.html

제일 메인이라고 볼 수도 있는 index.html부터 보고 연관되어 있는 코드들 연이어 설명 (중요 코드 위주)

index.html

  <div id="root"></div>

(이 부분이 바로 위에서 리액트 장점 설명할 때 말한) 컴포넌트들을 이 root안에 들어가도록 create-react-app은 약속하겠다!라는 뜻을 가진 코드 한 줄.

실제로 개발자 도구 들어가서 보면

안에 코드 다 들어가 있음

물론, root 말고 iloveapple로 바꾸어도 무방

그렇다면 root 안에 들어가는 컴포넌트들을 수정할 때는 어떤 파일을 열어야 할까??

=> src 디렉터리 안에 있는 파일들!!

그중 엔트리 파일은 index.js 파일을 살펴보면,

index.js

import App from './App';

=이 이라는 실제 컴포넌트가 구현되어 있는 곳은 './App'에 있어~

App은 컴포넌트 이름(컴포넌트 이름 첫 글자는 대문자) ./App은 컴포넌트를 구현한 파일 이름(.js는 생략되어 있)

ReactDOM.render(<App />, document.getElementById('root'));

바로 저기에 써져있는 가 컴포넌트

=id값이 root인 태그를 선택해~

App.js (함수 타입 x, 클래스 타입 o)

import React, {Component} from 'react';
import './App.css';

class App extends Component {
  render() {
    return (
      //반드시 리액트는 하나의 태그 안쪽에 나머지 태그들이 있어야함
      //즉, 제일 바깥쪽에는 태그 하나가 있어야 함. 
      <div className="App">
      Hello, React~~
      </div>
    );
  }
}
export default App;

실제 App 컴포넌트의 구현은 여기 있다 이 말.

실제 저 태그의 내용은

<div className="App">
Hello, React~~
</div>

요거다.


CSS 수정해보기

index.js 에는

import './index.css';

App.js에는

import './App.css';

해당 js파일을 멋들어지게 해주는 css 파일들. 일단 지금은 css 필요 없기에 js에서 import문 보고 css 파일 타고 들어가서 안에 내용 다 삭제.


배포해보기

개발환경의 앱은 겁나 무거움(암 것도 안 한 기본 앱이 1.7mb). 우리 개발자가 편리하게 개발하기 위해 첨가된 많은 것들이 있기에!

그러나 , 배포한 후의 앱은 보이는 화면은 똑같으나, 용량이 줄어있음(125kb).

리액트가 알아서 필요 없는 것들은 다 없애고 우리가 만든 src안의 여러 파일들을 create-react-app이 알아서 조합해서 build 디렉터리 안의 index.html이 로드할 수 있도록 처리해줌.

그래서인지 build안의 index.html 보면 띄어쓰기? 들여 쓰기 같은 것들 다 없어짐.

*배포 명령어

npm run build

=> 실제 서비스할 때는 build안의 파일들을 사용하면 됨

=> 웹 서버 다큐먼트 root(=웹 서버가 문서를 찾는 최상위 디렉터리) build 디렉토리 안에 있는 파일들 위치시키면 됨

  • npm install -v serve 또는 npx serve -s build

serve라는 명령어를 통해 어디서든지 웹 서버를 설치할 수 있음

헤헤ㅔㅎ,,

Comments