Props
import "./styles.css";
function Parent() {
return (
<div className="parent">
<h1>I'm the parent</h1>
<Child text={"I'm the eldest child"} />
{/* Child 컴포넌트에 또 다른 문자열을 props 로 전달해 보세요 */}
<Child />
</div>
);
}
function Child(props) {
// console 을 열어 props 의 형태를 직접 확인하세요.
console.log("props : ", props);
return (
<div className="child">
<p>{props.text}</p>
</div>
);
}
export default Parent;
State
정의: 내부에서 변화하는 값 ex) 나이, 사는 곳, 취업 여부
사용법:
React로부터 useState를 불러온다.
import { useState } from "react";
useState를 컴포넌트 안에서 호출
const [state 저장 변수, state 갱신 함수] = useState(상태 초기 값);
function CheckboxExample() {
// 새로운 state 변수를 선언하고, 여기서는 이것을 isChecked라 부르겠습니다.
const [isChecked, setIsChecked] = useState(false);
}
JSX 엘리먼트 안에 불러서 사용
// JSX에서 삼항연산자 사용
<span>{isChecked ? "Checked!!" : "Unchecked"}</span>
```
state 갱신
function CheckboxExample() {
const [isChecked, setIsChecked] = useState(false);
const handleChecked = (event) => {
setIsChecked(event.target.checked);
};
return (
<div className="App">
// checkbox 값 변경되면 onChange 이벤트 발생 -> handleChecked 호출 -> setIsChecked 호출 -> isChecked 변수 갱신
<input type="checkbox" checked={isChecked} onChange={handleChecked} />
<span>{isChecked ? "Checked!!" : "Unchecked"}</span>
</div>
);
}
이벤트 처리 방식
// HTML
<button onclick="handleEvent()">Event</button>
//React
<button onClick={handleEvent}>Event</button>
제어 컴포넌트: 사용자의 입력을 기반으로 자신의 state를 관리하고 업데이트한다.
import React, { useState } from "react";
export default function App() {
const [username, setUsername] = useState("");
return (
<div className="App">
<div>{username}</div>
<input
type="text"
value={username}
onChange={(event) => setUsername(event.target.value)}
placeholder="여기는 인풋입니다."
className="tweetForm__input--username"
></input>
</div>
);
}