[리액트]SPA 동작 순서
SPA는 Single Page Application의 약자로 한 번 웹 페이지를 로딩하면 사용자가 새로고침하지 않는 이상 페이지를 새로 로딩하지 않는 애플리케이션을 의미한다.
이게 무슨 의미일까?
React 동작순서
- index.html 렌더링
- HTML이 body태그를 렌더링하다가 마지막에 bundle.js 스크립트를 로딩하게 되고 거기에 index.js가 포함되어있음.
- index.js 실행
- ReactDOM.render() 함수가 실행됨 -> 매개변수가
<APP />
이라서 해당 element를 렌더링하게 됨.
- ReactDOM.render() 함수가 실행됨 -> 매개변수가
- root element 하위에 React.js가 생성한 HTML element 추가됨
- ReactDOM이 내부 컴포넌트들을 root 엘리먼트에 렌더링함.
- root element 하위 element 렌더링
SPA에서 페이지를 변경하고 싶다면?
root의 하위 엘리먼트를 다른 HTMl로 수정해야한다.
HOW?
fetch나 ajax등의 함수로 서버에 데이터를 요청한 뒤 응답 데이터를 받음 -> js내에서 HTML 재구성된다.
이렇게 서버에게 새 HTML 페이지를 요청하지 않고 데이터를 받은 다음에 js가 동적으로 HTML 재구성해서 만드는 클라이언트 애플리케이션을 SPA라고 한다.
이 렌더링 과정을 Client-side Rendering이라고 함.