Component
내부에서 가지고 있는 Component
의 상태값이다.Component
의 UI 상태이다.Component
내에서 정의하고 사용하며 얼마든지 데이터가 변경될 수 있다.State
는 화면에 보여줄 Component
의 정보이다.Function Component
에서 State
를 어떻게 정의할까?import React, { useState } from 'react';
function State() {
const [color, setColor] = useState('red');
return (
<div>
<h1>Function Component | State</h1>
</div>
);
}
export default State;
Function Component
에서 화면에 나타내고 싶은 jsx
요소가 return
문 안에 들어있다.State
를 설정할 때는 화면에 보이듯이 useState function
를 import
한 후 사용해야 한다.useState function
는 component
선언문(function State()
)과 return
문 사이에 작성한다.useState function
에 초기값red
을 인자로 넣어 호출하면 배열을 반환한다.function
이다.state
를 담는 변수를 color
로, color
의 값을 갱신하는 function
을 setColor
로 그리고 color
의 초기값을 red
로 정의하였다.
Function Component
의State
는 이렇게useState Hook
을 사용하여 정의한다. 이렇게Component
의State
를 설정하고 무엇을 할 수 있을까? 이런Component
의 상태값이 왜 필요할까? 실제State
가 어떻게 사용되는지 예시를 통해 살펴보자.
State
에서 상태값을 설정하는 이유는 결국 Component
안에 요소에서 그 상태값을 반영해서 데이터가 바뀔 때마다 효율적으로 UI에 나타내기 위함이다.
return
문 안에 <h1>
타이틀 요소가 있다.Component
에서 설정한 State
값으로 변경해보자.JSX
요소에 inline style
을 적용하고, 그 중에서도 글자 색을 설정해 줄 수 있다.<h1 style={{ color: }}>Function Component | State</h1>
useState function
을 사용하여 지정한 State
를 담는 변수 color
라는 변수를 속성의 value
로 지정해준다.<h1 style={{ color: color }}>Function Component | State</h1>
// key값 color는 색상을 부여하기 위한 속성
// value값 color는 useState function을 통해 초기값인 'red'를 담고 있는 변수
예시에서 볼 수 있듯이,
State
에서 상태값을 설정하는 이유는 결국Component
안의 요소에서 그 상태값을 반영해서 UI에 나타내기 위함이다.
import React, { useState } from 'react';
function State() {
const [color, setColor] = useState('red');
return (
<h1 style={{ color: color }}>Function Component | State</h1>
<button onClick={ () => setColor('blue') }>Click</button>
);
}
<h1>
태그 아래에 <button>
요소를 추가하였다.<button>
요소에서 onClick event
발생color
라는 상태값을 갱신하는 function
, setColor function
실행setColor function
을 실행시키면서 인자로 넘겨준 값 blue
에 의해 값이 red
에서 blue
로 변경Function Component
가 다시 render
되고 변경된 State
값을 반영하여 <h1>
태그 글자 색상 변경