Web-app : 실제로 앱은 아니지만 모바일 앱과 같은 사용성을 지닌 웹
- Nodejs 설치
- 명령어 사용 위함
- 15,16 버전 설치 권장! 최신 버전인 17은 에러 많음
- 코드 에디터를 열고 새 폴더 만들기
- 터미널에 npx create-react-app 플젝명
- npx는 라이브러리 설치 도와주는 명령어
-> Nodejs 설치해야 이용 가능
+) npm (라이브러리 설치 도와줌)이라는 툴 이용 가능- 3번에서 만든 플젝명 폴더(자동 생성됨) 다시 오픈
- 코딩 시작! (터미널에 npm start 입력 후 엔터 -> 실행)
![]()
⬆️ Blog라는 프로젝트 폴더를 생성한 모습
- App.js을 index.html에 넣어주는 것이 index.js
- Public 폴더 : static file (동적 요소 없이 고정되어 있는 파일)
- Src 폴더 : 소스코드 보관함
React는 MVC(Model–View–Controller) 이다.
Model은 데이터 정보, View는 화면, Controller는 구동을 위한 매개체
뷰 -> 컨트롤러 -> 모델
동작을 거의 동시에 같이 하므로 상호의존적이게 됨.
-> 💡 각각을 독립적으로 재사용 가능하도록 컴포넌트라는 코드 조각을 사용.
default props : 값이 들어오지 않았을 때 사용할 값
props는 값을 설정하지 않으면 true으로 리턴
상위 컴포넌트에서 하위 컴포넌트로 전달
(하위 컴포넌트에서 props은 읽기 전용)
defaultProps
propTypes
isRequired
동적으로 값을 쓸 수 있다.
함수컴포넌트 사용하는 useState 함수
Const[number, cngNumber] = useState(0)
초기값 필요! (0)
Number = 현재 상태
cngNumber = 최신값 (갱신된 상태)
부모에서 자식으로 prop를 통해 값을 넘겨 주는 것이 번거로울 때(여러 컴포넌트에게 전해줘야할 때 Ex) 브라우저 다크모드) 전역으로 값을 사용할 수 있게 해준다.
많이 안 쓰는 이유 -> 값이 변경이 되면 자동으로 재렌더링 되기 때문에 효율성이 떨어진다.
import React from 'react'; function Item(){ return( <div>Contents</div> ) } export default Item;
import React from 'react'; class Item extends React.Component{ constructor (){ super() } render(){ return( <div>Contents</div> ) } } export default Item;