cd 경로\reactWorkspacenpx create-react-app 프로젝트명cd my-appnpm startindex.html : <div id="root">여기에 렌더링
index.js : 앱의 진입점 역할
const root = ReactDOM.createRoot(document.getElementById('root'));
<App />
import App from './App';
App.js : 기본 컴포넌트, 컴포넌트에 새로 추가한 컴포넌트 추가
각 컴포넌트를 js 파일로 분리
src 폴더 안에 components 폴더 생성
App.js에서 각 컴포넌트 import
<div></div>
<div></div>
모든 태그는 최상위 태그 내에 포함
<div>
<div></div>
<h3></h3>
<div></div>
</div>
<div className="nav">컴포넌트의 속성 (값 설정)
부모 컴포넌트에서 자식 컴포넌트로 값을 전달할 때 사용 (읽기 전용)
컴포넌트 렌더링할 때 값을 전달해 주고 싶을 때 사용
부모 컴포넌트 : App.js
값을 직접 보내도 되고, 변수의 값을 보내도 됨
<Subject title="제목"></Subject> 또는
let title = “제목”;
<Subject title={title}></Subject>
자식 컴포넌트에서 받음 : Subject.js
const Subject = ({title}) => {
… {title}
}
변수 (변경 가능)
컴포넌트 내부에서 변경될 수 있는 값
이 값이 변경될 때 리 렌더링 됨
함수형 컴포넌트에서는 useState() 함수 사용해서 state 값 변경
Hooks
기존의 함수형 컴포넌트에서 할 수 없었던 다양한 기능을 제공
useState() : 상태 관리
useEffect() : 렌더링 직후 작업 설정
import React, {useState} from ‘react’;
const [state명(변수명), setter함수명] = useState(초기값);
이벤트 처리 시 주의점
이벤트 이름은 카멜 표기법 사용 : onClick, onKeyUp
이벤트에 함수 형태의값 전달
onClick = {onClickEnter}
onClick = {() => setColor(‘green’)}
DOM 요소에만 이벤트 설정 가능
사용자가 직접 만든 컴포넌트에는 이벤트 설정 불가
예 : MyComponent에 onClick 설정 시
<MyComponent onClick={doSomthing} />
클릭 시 doSomthing() 함수를 호출하는 것이 아니라
(속성) 이름이 onClick인 props를 MyComponent 컴포넌트에 전달하는 것
전달받은 props를 컴포넌트 내부의 DOM 이벤트로 설정
<div onClick={props.onClick}></div>
<input> 태그의 입력 값 처리 이벤트map() 사용titles.map( (title, index) => (
<p>{title}</p>
) )