프로그래밍 언어/React
[React Hooks]useState
claire
2022. 7. 5. 23:39
useState
state는 상태. useState는 컴포넌트의 상태를 간편하게 생성하고 업데이트 해줄 수 있는 도구. state를 setState로 변경해준다.
setState로 상태를 변경하면 해당 컴포넌트는 화면에 다시 렌더링이 된다.
import { useState } from "react";
const heavyWork = () => {
console.log("무지하게 무거운 함수");
return ["홍길동", "김민수"];
};
function App() {
// 초기값이 이렇게 무거운 작업을 하는 함수라면 맨 처음 렌더링 시에만 불러주고 싶다.
// const [names, setNames] = useState(heavyWork());
// 그러면 이렇게 아래처럼 콜백함수를 인자로 줘야한다.
const [names, setNames] = useState(() => {
return heavyWork();
});
const [input, setInput] = useState("");
const handleInputChange = (e) => {
setInput(e.target.value);
};
const handleUpload = (e) => {
// 갱신해 줄 값이 이전에 이미 존재하는 state와 밀접하게 연결되어있으면 callback 함수를 전달한다.
setNames((prev) => {
console.log("이전 state", prev);
return [input, ...prev];
});
};
return (
<div>
<input type="text" value={input} onChange={handleInputChange} />
<button onClick={handleUpload}>Upload</button>
{names.map((name, idx) => {
return <p key={idx}>{name}</p>;
})}
</div>
);
}
export default App;