useState는 상태를 정의하고, 이 상태를 관리해주는 훅이다.
import { useState } from 'react';
function Test() {
const [state, setState] = useState('Hello');
function handleClick() {
setState('안녕');
}
return (
<div>
<h1>Use State</h1>
<h2>{state}</h2>
<button onClick={handleClick}>한글</button>
</div>
);
}
export default Test;
function Test() {
let state = 'Hello';
function handleBtnClick() {
console.log('Click Event');
state = '안녕';
}
return (
<div>
<h1>Use State</h1>
<h2>{state}</h2>
<button onClick={handleBtnClick}>한글</button>
{console.log('return - state:', state)}
</div>
);
}
export default Test;

( "한글" 버튼을 아무리 클릭해도, return 문의 {state} 값은 초기화 값 "Hello" 이다. )
import { useState } from 'react';
function Test() {
const [state, setState] = useState('Hello');
function handleBtnClick() {
console.log('Click Event');
setState('안녕');
}
return (
<div>
<h1>Use State</h1>
<h2>{state}</h2>
<button onClick={handleBtnClick}>한글</button>
{console.log('return - state:', state)}
</div>
);
}
export default Test;

( "한글" 버튼을 클릭하면, state 값이 변경되어 리-렌더링 된다. )
import { useState } from 'react';
function Test() {
const [state, setState] = useState({ name: 'Han', greeting: 'Hello' });
function handleBtnClick() {
console.log('Click Event');
setState((state.greeting = '안녕'));
}
return (
<div>
<h1>Use State</h1>
<h2>
{state.greeting} {state.name}
</h2>
<button onClick={handleBtnClick}>한글</button>
{console.log(state)}
</div>
);
}
export default Test;
import { useState } from 'react';
function Test() {
const [state, setState] = useState({ name: 'Han', greeting: 'Hello' });
function handleBtnClick() {
console.log('Click Event');
setState({...state, greeting: "안녕"});
}
return (
<div>
<h1>Use State</h1>
<h2>
{state.greeting} {state.name}
</h2>
<button onClick={handleBtnClick}>한글</button>
{console.log(state)}
</div>
);
}
export default Test;