ㅇㅇㅈ Blog

프론트엔드 수행중

0%

컴포넌트 상태 다루기

컴포넌트 상태 다루기

DOM : 논리트리
컴포넌트 : 엘리먼트의 집합
엘리먼트 : 요소

useState hook

  • useState는 현재의 값을 저장하는 기능과 업데이트하는 함수를 쌍으로 제공한다.
  • 해당 함수는 이벤트 핸들러에서 호출이 가능하다.
  • 컴포넌트 안에서 useState는 여러 번 선언이 가능하다.
  • 또한 초기 값으로는 아까처럼 숫자뿐만 아니라 문자, 그리고 배열을 넣는 것도 가능하다.
1
2
const [state,setState] = React.useState(state)
// [상태 값 저장 변수,상태 갱신 함수] = React.useState(상태 초기값)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function Btn() {
const [keyword, setKeyword] = React.useState('')
const [typing, setTyping] = React.useState(false)
const [result, setResult] = React.useState('')

function handleChange(e) {
setKeyword((cur) => cur = e.target.value)
setTyping(true)
}
function handleClick() {
setTyping(false)
setResult((cur)=> cur = `we find result of ${keyword}`)
}
return (
<>
<input type="text" onChange={handleChange} ></input>
<button onClick={handleClick}>search</button>
<p>{typing ? `Looking for ...${keyword}` : result}</p>
</>
)
}
const App = () => {
return (
<Btn />
)
}
ReactDOM.render(<App />, root)

상태 초기값을 가져올때 딜레이가 걸릴수도 있을경우 함수로 작성해 호출을 보장해 줄 수 있다

1
const [keyword, setKeyword] = React.useState(() => window.localStorage.getItem('keyword'))