📅 2025-10-01
➡️ React에 대해 새롭게 알게 된 것 또는 헷갈리는 부분 정리 + 🤔❓
index.html) 이후 화면 전환은 JS가 데이터와 상태를 바꾸며 일부 영역만 업데이트<div id="root"></div> 같은 빈 HTML + JS 파일 전달#)를 이용한 페이지 이동 SPA는 기본적으로 서버에 새로운 페이지를 요청하지 않음. 대신 주소창에 #값을 붙여 구분http://localhost:3000/#homehttp://localhost:3000/#about# 뒤의 값만 바뀌어도, 브라우저는 전체 페이지를 다시 요청하지 않고 클라이언트에서 화면을 전환http://example.com/about
→ 서버에 /about 경로 요청
http://example.com/#about
→ 서버에는 /만 요청하고, #about 은 클라이언트 전용 값
즉, # 이후의 값은 서버에 전달되지 않음. 오직 브라우저(클라이언트)에서만 사용
yarn create vite [프로젝트 명]# 리액트 Boilerplate 설치 : 프로젝트 셋업
yarn create vite
# 프로젝트 폴더로 이동
cd <프로젝트폴더명>/
# VS Code로 프로젝트 열기
code .
SPA에는 html 파일이 한 개만 존재.index.html파일 한 개만 존재
index.html파일에서 main.jsx를 모듈로 불러서 사용main.jsx파일 역시 App.jsx파일을 불러와서 사용

// package.json
{
"name": "goorm-react-1", // 프로젝트 이름
"private": true,
"version": "0.0.0", // 프로젝트 버전
"type": "module",
"scripts": { // 명령어
"dev": "vite", // 개발 서버 실행
"build": "vite build", // 빌드 파일 생성
"lint": "eslint .",
"preview": "vite preview" // 빌드된 파일 미리보기
},
"dependencies": { // 의존성
"react": "^19.1.1",
"react-dom": "^19.1.1"
},
"devDependencies": { // 개발 의존성
"@eslint/js": "^9.36.0",
"@types/react": "^19.1.13",
"@types/react-dom": "^19.1.9",
"@vitejs/plugin-react-swc": "^4.1.0",
"eslint": "^9.36.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"globals": "^16.4.0",
"vite": "^7.1.7"
}
}

- 필요한 라이브러리나 다른 파일을 불러오기 → `import`
- 내가 만든 컴포넌트를 다른 곳에서 사용할 수 있도록 내보내기 → `export default`
- 컴포넌트 함수 안에서는 일반적인 자바스크립트 코드를 작성할 수 있음
- 예: 변수 선언, 함수 작성, 데이터 가공 등
- return문 안에서는 JSX 문법 사용
- JSX는 자바스크립트 안에서 HTML처럼 보이는 코드를 작성할 수 있게 해줌
- 여기 작성한 JSX가 실제로 화면에 렌더링 됨
❗주의할 점
- 컴포넌트를 만들 때 첫 글자는 대문자 사용
- 폴더 → 소문자로 시작하는 카멜케이스
- 컴포넌트 → 대문자로 시작하는 카멜케이스