[React] 개념 정리
리액트란?
- 자바스크립트 라이브러리로 사용자 인터페이스를 만드는데 사용함.
- 오직 View만 신경쓰는 라이브러리
컴포넌트
- 리액트 프로젝트에서 특정 부분이 어떻게 생길지 정하는 선언체
- 재사용 가능한 API로 수많은 기능들을 내장하고 있음
- 컴포넌트 하나에서 해당 컴포넌트의 작동방식, 생김새 정의
렌더링
- 사용자 화면에서 뷰를 보여주는 것
- 초기렌더링과 리렌더링으로 나눌 수 있음.
1. 초기 렌더링
- 맨 처음에 어떻게 보일지 정함 : render 함수
render(){...}
//컴포넌트가 어떻게 생겼는지 정의함.
- 뷰가 어떻게 생겼고 작동하는지에 대한 정보를 가진 객체 반환
- 컴포넌트 내부에 다른 컴포넌트 들어갈 수 있음 : render 실행 시, 내부 컴포넌트들은 재귀적으로 렌더링됨.
- 최상위 컴포넌트 렌더링 > HTML 마크업 언어 생성 > DOM에 주입
2. 조화 과정(reconciliation)
- 리액트에서 뷰를 업데이트하는 과정 == 조화과정이다.
- 컴포넌트는 데이터를 업데이트했을 때, 새로운 데이터를 가지고 리렌더링함 : 데이터를 가진 뷰 생성됨.
- 이전 렌더링된 컴포넌트 정보와 현재 값 비교
- 최소한의 연산으로 DOM 트리 업데이트
React 특징
가상 돔(Virtual DOM)
- 업데이트 처리 간결성
DOM(Document Object Model)
- 객체로 문서 구조를 표현하는 방식
- 웹 브라우저는 DOM을 활용하여 자바스크립트나 css 적용
- 트리형태 : 특정 노드 검색, 삽입, 삭제 등이 자유로움
- 동적 UI에 최적화되지 않음! : 자바스크립트를 활용하여 동적으로 만듦(HTML은 정적임)
- DOM은 매우 빠르나, DOM 업데이트 시 재연산되는 css, 레이아웃 구성, 페이지 리페인트 등에서 시간이 많이 소요됨 : 결과적으로 느려보임.
따라서, 리액트는 Virtual DOM 방식을 통해 불필요한 업데이트를 줄이고 효율적으로 함.
리액트가 실제 DOM을 업데이트하는 방법
- 데이터 업데이트 시, 전체 UI를 Virtual DOM에 리렌더링함.
- 이전 Virtual DOM에 있는 내용과 현재 내용 비교
- 바뀐 부분만 실제 DOM에 적용함.
기타 특징
- 리액트는 프레임워크가 아닌 라이브러리임.
- 다른 프레임워크처럼 Ajax, 라우팅, 데이터 모델링 등 내장하고 있지 않아 모두 구현해야함
- 리액트 라우터(react-router), Ajax 처리는 axios, fetch, 상태관리는 redux, MobX 사용으로 대체 가능
- 다양한 라이브러리를 입맛대로 설정 가능하나, 여러 라이브러리에 대한 지식도 있어야 함.
- 다른 프레임워크나 라이브러리와 혼용 가능함.
Author And Source
이 문제에 관하여([React] 개념 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@jjaa9292/React-개념-정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
render(){...}
//컴포넌트가 어떻게 생겼는지 정의함.
가상 돔(Virtual DOM)
- 업데이트 처리 간결성
DOM(Document Object Model)
- 객체로 문서 구조를 표현하는 방식
- 웹 브라우저는 DOM을 활용하여 자바스크립트나 css 적용
- 트리형태 : 특정 노드 검색, 삽입, 삭제 등이 자유로움
- 동적 UI에 최적화되지 않음! : 자바스크립트를 활용하여 동적으로 만듦(HTML은 정적임)
- DOM은 매우 빠르나, DOM 업데이트 시 재연산되는 css, 레이아웃 구성, 페이지 리페인트 등에서 시간이 많이 소요됨 : 결과적으로 느려보임.
따라서, 리액트는 Virtual DOM 방식을 통해 불필요한 업데이트를 줄이고 효율적으로 함.
리액트가 실제 DOM을 업데이트하는 방법
- 데이터 업데이트 시, 전체 UI를 Virtual DOM에 리렌더링함.
- 이전 Virtual DOM에 있는 내용과 현재 내용 비교
- 바뀐 부분만 실제 DOM에 적용함.
기타 특징
- 리액트는 프레임워크가 아닌 라이브러리임.
- 다른 프레임워크처럼 Ajax, 라우팅, 데이터 모델링 등 내장하고 있지 않아 모두 구현해야함
- 리액트 라우터(react-router), Ajax 처리는 axios, fetch, 상태관리는 redux, MobX 사용으로 대체 가능
- 다양한 라이브러리를 입맛대로 설정 가능하나, 여러 라이브러리에 대한 지식도 있어야 함.
- 다른 프레임워크나 라이브러리와 혼용 가능함.
Author And Source
이 문제에 관하여([React] 개념 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jjaa9292/React-개념-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)