웹 애플리케이션에서 해당 컴포넌트가 가진 속성(property)
ex. (일반적으로) 이름, 성별
클래스 컴포넌트와 함수 컴포넌트
- 클래스 컴포넌트: ES6 class 문법을 사용해서 만든 컴포넌트
- 함수 컴포넌트: 함수 문법을 사용하여 만든 컴포넌트 → Hook을 활용해서 state를 다룸
function Parent() {
return(
<div className = "parent">
<h1>I'm the parent</h1>
<Child text={"I'm the eldest child"}/> //(1)
</div>
);
};
function Child(props) { //(2)
return (
<div className = "child">
<p>{props.text}</p> //(3)
</div>
);
};
컴포넌트를 사용하는 동안 컴포넌트 내부에서 변할 수 있는 값
ex. 나이, 현재 사는 곳, 취업 여부, 결혼/연애 여부
useState
불러오기import { useState } from "react";
useState
를 호출하는 것은 “state” 변수를 선언하는 것과 동일함const [state 저장 변수, state 갱신 함수 ] = useState(상태 초기 값);
isChecked
: state를 저장하는 변수setIsChecked
: state isChecked
를 변경하는 함수useState
: state hookfalse
: state 초기값function CheckboxExample() {
//새로운 state 변수를 선언하고 isChecked라고 부르기
const [isChecked, setIsChecked] = useState(false);
//위의 코드는 다음 세 줄의 코드와 의미가 같음
//const stateHookArray = useState(false);
//const isChecked = stateHookArray[0];
//const setIsChecked = stateHookArray[1];
}
<span>{isChecked ? "Checked!!" : "Unchecked"}</span>
setIsChecked
를 호출input[type=checkbox]
JSX 엘리먼트의 값 변경에 따라서 isChecked
가 변경되도록 설정함onChange
이벤트가 이벤트 핸들러 함수인handleChecked
를 호출handleChecked
가 setIsChecked
를 호출setIsChecked
가 호출되면 호출된 결과에 따라 isChecked
변수가 갱신isChecked
변수를 CheckboxExample
컴포넌트에 넘겨 해당 컴포넌트를 다시 렌더링함function CheckboxExample() {
const [isChecked, setIsCheckd] = useState(false);
const handleChecked = (event) => {
setIsChecked(event.target.checked);
};
return (
<div className="App">
<input type="checkbox" checked={isChecked} onChange={handleChecked} />
<span>{isChecked ? "Checked!!" : "Unchecked"}</span>
</div>
);
};