[TIL] React intro

이나현·2021년 7월 19일
1

React

목록 보기
2/10

CRA: react로 개발을 시작하기 위해 모아놓은 tool chain
(때문에 개발환경을 빠르게 만들 수 있다.)

component: 재사용이 가능한 각각의 독립된 모듈
(프론트엔드: 재사용 가능한 UI 단위)

jsx: HTML을 자바스크립트에 확장하는 문법

1. why react?

웹이 복잡해지면서 리액트 출현
(웹이 복잡해진다? 처리해야할 데이터가 많아지고 UI 변화가 많아진다.)

1.1 web application 발전
1) 3세대(프레임워크와 라이브러리)

  • 공통점: 남들이 만들어 놓은 코드
  • 차이점
    angular/vue: 프레임워크 - 다른 사람이 만들어 놓은 틀 안에서 가져 쓰는 도구
    react: 라이브러리 - 내가 가져다 쓸 수 있는 하나의 도구

2) 왜 우리가 react를 사용해야 하는지?

  • 생태계가 활성화 되어 있음(사용자가 많음, 커뮤니티의 이점을 누릴 수 있다)
  • 페이스북의 관리가 이루어져 지속적 성장이 가능

2. what is react?

react: 사용자 인터페이스(UI)를 만들기 위한 Javascript 라이브러리

  • UI를 자동으로 업데이트 해줌( = 선언적)
  • 리액트는 가상돔(virtual DOM)을 통해 UI 업데이트
    (가상돔: 이전 UI 상태를 메모리에 유지해서, 변경될 UI의 최소 집합을 계산하는 기술)
  • 선언적 프로그래밍
    => (ex. 방청소) 깨끗해진 방을 상상한다. > 방이 깨끗해질 거다(선언) = 실제로 방이 깨끗해짐
  • DOM 조작 > 데이터의 변화로 패러다임의 변화
  • UI의 변화와 연관된 데이터 = state

3. setting

-node.js: 브라우저 밖에서도 동작하는 자바스크립트 런타임 환경(탈 웹)
(왜 노드가 필요한가? javascript 문법으로 변화시켜야하기 때문이다.)

  • npm: node package manager
    (package? node 환경에서 실행할 수 있는 어플리케이션(ex 스마트폰(노드) - 앱(package))

4. CRA(create-react-app)

  • 리액트 프로젝트를 시작하는데 필요한 개발 환경을 세팅해주는 도구
  • 리액트는 UI 기능만 제공. 따라서 개발자가 직접 구축해야하는 것들이 많음
  • 리액트로 웹 애플리케이션을 만들기 위한 환경을 제공
  • 하나의 명령어로 리액트 개발환경 구축이 가능

[CRA 구성]

  • node_modules: CRA를 구성하는 모든 패키지 소스 코드가 존재하는 폴더
  • gitignore: github에 올리고 싶지 않은 것들 (안올리는 이유? 용량이 커서)
  • package.json: 우리가 만든 프로젝트의 정보가 저장되어 있음 (github에 올림)
    (dependencies(의존성): 우리 프로젝트에서 의존하고 있는 패키지들)

경로를 쓰지 않으면 node_modules에서 가져옴

5. components

component: 재사용 가능한 UI 단위
특징: 레고 블럭 => 레고 블럭을 조립해서 하나의 큰 프로젝트를 만들 수 있음

1) class component
2) function component

React : 대문자로 시작하는 것 - 컴포넌트 이름 규칙

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

1arg: component
2arg: DOM -> id root인 element를 가져오고 있음
첫번째 인자로 받은 컴포넌트를 두번째 인자로 받은 dom안에 넣어주는 것

6. JSX

  • JSX: 리액트에서 사용하는 자바스크립트 문법
  • 장점:
    1) HTML 태그를 그대로 사용하기 때문에 보기 쉽고 익숙
    2) HTML 마크업과 JS 로직구현을 같이 할 수 있음
    3) DOM + Event
  • 특징:
    1) 하나의 부모태그(부모태그를 빈태그로 만들 수도 있음)
    2) self closing
    3) camelCase
    4) 모든 요소를 감싸는 최상위 요소 존재

westagram 참고

  • components 폴더: 공통적으로 사용되는 것들
  • pages: 하나의 페이지 단위
  • public 폴더: 실제 배포할 때 행동하는 브라우저의 동작
profile
technology blog

1개의 댓글

comment-user-thumbnail
2021년 7월 20일

🙆🏻‍♀️🔥👍🏼😁👌🏽🐼👏🏼

답글 달기