복잡한 사용자 인터페이스(UI)를 쉽게 구축하게 위해 페이스 북에서 만든 Javascript 라이브러리.
특징
-> 각각의 독립적인 컴포넌트(하나의 기능을 하는 코드 덩어리) 단위들을 서로 조립해서 만드는것
사용문법
-> JSX 문법
라이브러리는 무었일까?
-> 모든 코딩을 직접 하기에는 무리가 있고 비효율적. 따라, 짜놓은 코드를 가져다가 사용.
-> re-render 와 components
-> 한가지의 기능을 수행하는 UI(UserInterface/ 눈에 보이는 모든것) 단위
-> 컴포넌트는 DOM TREE 처럼 Virtual Dom Tree 라는 가상의 돔프리 형식으로 만든다.
-> Reaxct 가 가지고 있는 가상 돔 트리, 진짜 돔트리의 복사본.
-> 진짜 돔트리를 본따서 만든 가상 돔트리.
-> 리액트 어떤 변화가 생기면 자동으로 랜더링을 해서 그 부분만 바꿔서 보여준다.
여러개의 HTML .
기능 적용이 되있지 않아도 화면을 먼저 볼수 있도록. 화면을 조금더 빨리볼수 있다는 장점.
기능까지 완벽하게 구현한 상태까지 보여진다.
ex) 버튼이 있으면 버튼을 누를때 일어나는 이벤트까지 완전하게 구현된 모습을 볼수 있다.
따라, 바꿔치기 해서 보여줘야 한다.
진짜 돔트리랑, 가짜 돔트리를 만든다.
가짜 돔트리에 상태 변화를 일으킨다. 어떤 컴포넌트에 상태가 변화가 되면
버츄얼 돔트리에서 이 부분에 대해 변화가 일어난다.
그리고 진짜 돔트리랑 비교를 하고, 바뀐 부분만 진짜 돔트리에게 적용 시킨다. 적용시킨후 상태 변화가 되었던 맨처음 컴포넌트를 부르는 함수를 다시 로드해서 상태를 변환시킨다.
React 가 SPA에 맞게끔 Virtual Dom Tree 를 활용하여 바뀐 부분만
진짜 돔트리랑 비교를 해서 바뀔수 있도록 만든것.
🤔 그럼 리액트는 = SPA 인걸까?
-> NO!!! SPA 에 적합하게 만들어진것 뿐이지 , SPA 는 아니다.
결국 React 는 복잡한 UI를 쉽게 제작하고 코드를 재사용하며, 가독성을
높이기 위해 리랜더링과 컴포넌트 사용하는 Javascript 라이브러리 이다.
📌사용법
npm install 패키지명 (라이브러리명)
npm i 패키지명(라이브러리명)
📌제거시
npm remove 패키지명
npm rm 패키지명
📌사용법
npm i -g yarn
yarn add 패키지명(라이브러리명)
cd
cd 경로 -> 해당 경로로 이동
cd.. -> 뒤로가기
npx create-react-app 프로젝트명
( CRA - react 에서 제공하는 프로젝트 제작 패키지)
React 에서 따로 설치하지 않아도 필요한 라이브러리들은 자동으로
설치해주고 폴더 구조도 자동으로 만들어주는 일종의 명령어
최고 장점은 설정하기 까다로운 "바벨" , "웹팩"을 초기 패키지에 포함
-> 최신 버전이 지원 되지 않은 브라우저에 맞는 버전의 언어로 변환
"모듈" 이란?
-> 프로그래밍 관점에서 특정 기능을 갖는 작은 코드 단위(코드 집합)
ex)
module.exports = printab {
const print = () => {
console.log("a")
console.log("b")
}
}
printab.print();
-> 모듈을 printab 라는 이름으로 내보낼 것이고, 여기에는 print 라는
함수가 있다.
따라 printab.print(); 이런식으로 사용할수 있음