컴포넌트의 내부에서 변경될 수 있는 값
useState hook을 사용 (hook : 기능)
// 초기 설정
const [변수명, set변수명] = useState("초기값")
onClick
, onChange
등의 이벤트를 발생시킴set변수명("변경할 값")
를 설정함function App() {
const [name, setName] = useState("초기 이름")
const [value, setValue] = useState("");
const onClickHandler = () => {
setName("변경된 이름");
}
const onChangeHandler = (event) => {
const inputValue = event.target.value;
setValue(inputValue);
}
return (
<div>
<input type="text" onChange={onChangeHandler} value={value} />
<button onClick={onClickHandler}>{name}</button>
</div>
)
}
React에서 컴포넌트를 화면에 출력하는 방식
useState의 내부 값이 기본형인 경우, 해당 값이 변경되었을 때 리렌더링을 수행하지만,
useState의 내부 값이 참조형인 경우, 해당 값이 변경되어도 리렌더링을 수행하지 않는다.
useState의 내부 값이 참조형인 경우에 state를 변경시키는 방법
: 전개 연산자(...)를 사용하여 값을 복사한 뒤, 해당 값을 변경하고 결과를 useState에 반영
function App() {
const [name, setName] = useState(["John", "Mary"])
const onClickHandler = () => {
setName([...name, "Sam"]);
}
return (
<div>
<button onClick={onClickHandler}>{name}</button>
</div>
)
}