useState -> setState 시 prev이 주입된다
useState 로 만들어진 함수는 이전 값이 인자값으로 들어 옵니다
<script type="text/babel">
const rootElement = document.getElementById("root");
const App = () => {
console.log("App render start");
const [show, setShow] = React.useState(() => {
console.log("App useState");
return false;
});
React.useEffect(() => {
console.log("App useEffect, [show]");
}, [show]);
React.useEffect(() => {
console.log("App useEffect, no deps");
});
React.useEffect(() => {
console.log("App useEffect, empty deps");
}, []);
function handleClick() {
setShow((prev) => !prev);
}
return (
<>
<button onClick={handleClick}>Search</button>
{show ? (
<>
<input />
<p></p>
</>
) : null}
</>
);
};
ReactDOM.render(<App />, rootElement);
console.log("App render end");
</script>