Angular | React | Vue |
---|---|---|
크로스 플랫폼 (어떤 플랫폼에서든지 하나의 코드베이스로 결과물> | A JavaScript Library for building User Interface | The Progressive JavaScript Framework |
거의 모든 기능이 프레임워크 안에 있음 (testing, animation, accessibility) | ||
Framework | Library + Framework | Library |
<!-- HTMLElement -->
<img src="이미지 주소" />
<button class="클래스 이름">버튼</button>
<!-- 내가 만든 컴포넌트 -->
<내가지은이름1 name="Mark" />
<내가지은이름 prop={false}>내용</내가지은이름>
<!--
- src, class, name, props 밖에서 넣어주는 데이터
- 문서(HTML), 스타일(CSS), 동작(JS) 를 합쳐서 내가 만든 일종의 태그
-->
State Change ⇒ Compute Diff ⇒ Re-render
CSR
Server Sending Response to Browser
Browser Downloads JS
Browser executes React
Page Now Viewable and Interactable
SSR
Server Sending Ready to be rendered HTML Response to Browser
Browser Renders the page, Now Viewable, and Browser Downloads JS
Browser executes React
Page Now Interactable
// 1. 리액트 컴포넌트 => HTMLElement 연결하기
import ReactDOM from 'react-dom';
// 2. 리액트 컴포넌트 만들기
import React from 'react';