스케폴딩 작업
pnpm create vite learn-react
- 두개 붙이면 옵션을 뜻함
CJS / MJS CJS와 MJS는 JavaScript 모듈 시스템을 나타내는 두 가지 주요 형식입니다.CJS (CommonJS):
CJS는 Node.js와 같은 환경에서 주로 사용되는 모듈 시스템 형식입니다. 이 모듈 시스템은 require() 함수를 사용하여 모듈을 가져오고 module.exports 객체를 사용하여 모듈을 내보냅니다. 예시를 통해 살펴보겠습니다:
MJS (ECMAScript Modules, ES Modules):
MJS는 ECMAScript 6 (ES6) 표준에 도입된 모듈 시스템 형식입니다. 주로 웹 브라우저 및 최신 Node.js 버전에서 지원됩니다. 이 모듈 시스템은 import 문을 사용하여 모듈을 가져오고 export 문을 사용하여 모듈을 내보냅니다. 예시를 살펴보겠습니다:
주요 차이점:
CJS는 동기적으로 모듈을 로딩하고 실행하며, 모듈의 내용이 로드될 때까지 코드 실행이 차단될 수 있습니다.
MJS는 비동기적으로 모듈을 로딩하며, 모듈의 내용이 비동기적으로 로드되기 때문에 차단되지 않습니다.
MJS는 정적인 import 문과 export 문을 사용하여 모듈 관리를 합니다.
CJS와 MJS 간에는 구문 차이와 비동기적 로딩 방식 등의 차이가 있습니다.
Node.js 환경에서는 .mjs 확장자를 사용하여 MJS 모듈을 로드할 수 있습니다. MJS 모듈을 사용하려면 Node.js의 --experimental-modules 플래그를 사용하여 실행환경을 설정해야 합니다.
yamoo react 자료
UI = 컴포넌트 + 컴포넌트
컴포넌트 = 함수 + 마크업(JSX)
🏷️커링(Currying) 함수형 프로그래밍 개념 중 하나로,
노드 모듈스 파일이 디폴트 값이기 때문에 생략 가능하다
페이지 주요 컨텐츠 -> 안보이는 이유
안에 들어가면 children 값이 되는데 명시를 안해서 안나옴
RootLayout에서 props.children을 써주면 제대로 결과값이 나온다
➕ 화살표 함수는 const 앞에 export default 붙여서 default 설정 못해준다
그래서 컴포넌트를 만들 때는 보통 선언문으로 작성한다.
(화살표 함수로 사용하면 변수라고 나오는 것 때문에도 선언형으로 사용 하는 걸 권장)