bundle.js = 전체 어플리케이션의 컴파일된 자바스크립트
웹펙과 바벨이 기존의 저장소에 있는 여러 자바스크립트 파일들을 하나로 합쳐서 bundle.js 파일 하나로 이용할 수 있게 해 놓음
리액트는 웹 브라우저에 보여지는 HTML을 만드는 자바스크립트 라이브러리.
컴포넌트(Componenet) 혹은 뷰(View)를 각각 만들게 됨.
여러 개의 다른 컴포넌트를 작성하고 이 컴포넌트들을 다른 방식으로 배치하면서 복잡한 어플리케이션을 보다 간단하게 만들어 줌.
컴포넌트는 HTML을 만드는 자바스크립트 함수의 모음집으로, 자바스크립트로 컴포넌트를 만들 때 컴포넌트는 궁극적으로 HTML로 만들어 짐.
JSX = 부분적인 템플릿 혹은 변형된 자바스크립트로, 자바스크립트 안에 HTML처럼 보이는 소스코드를 사용할 수 있게 도와줌. (표면적으로 보이지 않는 자바스크립트)
JSX의 목적은 자바스크립트 코드를 HTML로 만들기 위한 것임
ES6와 같은 JSX의 const는 브라우저에 의해 해석될 수 없음.
웹팩과 바벨같은 보일러플레이트 패키지의 목적은 JSX를 바닐라 자바스크립트로 변환하여 브라우저가 이해할 수 있게 만든다는 것.
리액트는 두 개의 분리된 라이브러리로 나뉘어짐.
Core React 라이브러리는 리액트 컴포넌트가 어떻게 렌더링되며 어떻게 컴포넌트들을 모으는지 등을 알고 있음
(컴포넌트들을 생성하고 관리)
React DOM은 DOM에 렌더링 하는 기능을 가지고 이 컴포넌트를 가져와 DOM에 삽입함
(실제 DOM과 상호작용)
ReactDOM은 DOM에 렌더링 하기 전에 컴포넌트를 인스턴스화 해야 한다
ES6 문법
* Fat arrow (화살표 함수 ( )=>)
: 리액트에선 때때로 한 컴포넌트 안에 여러 함수를 작성할 필요가 있음.
이는 더 간결하고 압축적인 구문 형태로 함수를 정의할 수 있게 해준다.
이 화살표 함수는 function 키워드를 사용하는 것과 동일함!
값을 제외하고는 더 많거나 적다는 것
* Syntactic sugar
모든 파일들은 서로 연결하겠다고 선언하지 않으면 각 파일은 계속 분리된 상태로 있을 것임 ..
- 리액트 컴포넌트
1. 함수형 컴포넌트
: 함수로 이루어 졌기 때문에 함수형 컴포넌트라 불림
하나의 함수가 JSX 형태를 반환
2. 클래스 컴포넌트
: 내부적인 정보를 저장하려 할 때 사용
그 자체로 기능을 함
- 클래스: 실제 자바스크립트의 프로퍼티와 메소드로 이루어짐
우리가 생상하는 모든 클래스 기반 컴포넌트는 render 메소드를 정의하고, JSX를 반환해야 함
( 그래서 App 컴포넌트가 해당 js를 렌더링 할 때마다 이전의 일반 함수를 호출하는 대신에 이 render함수를 호출함.
이 render 함수를 정의할 때마다 모든 클래스의 함수에는 JSX를 반환해야만 함, 안그러면 아무것도 안보임)
- state
스테이트: 자바스크립트의 객체로써, 유저 이벤트를 저장하고 반응하는데에 이용됨
우리가 정의한 컴포넌트 기반의 각 클래스는 그 자체의 스테이트 객체를 가짐
컴포넌트 스테이트가 바뀔 때마다 컴포넌트는 즉시 리렌더링하고 자식 요소들에게도 렌더링하도록 강제함
만약 만든 클래스의 값이 변경되면 render()함수가 재실행 됨
초기화 필수-> 스테이트 프로퍼티를 클래스의 constructor 메소드 안에 넣는다
'개발 > ETC' 카테고리의 다른 글
[GCP] 구글클라우드 Windows 서버 표준시간대 설정 (0) | 2023.05.17 |
---|---|
[Vue.js] js-cookie 모듈 써서 '오늘 하루 보지 않기' 만들기 (0) | 2022.02.14 |
[jqGrid] 그리드 내 페이징 시 scrollTop (0) | 2021.03.30 |
그리드 찾기 2 (0) | 2020.12.01 |
[TypeScript] 타입스크립트 기본 문법 1편 (0) | 2020.07.13 |