JSX를 사용하여 React 컴포넌트를 작성하다보면, 각 컴포넌트의 state를 초기화하는 방법에 대해 궁금할 수 있습니다. 특히 TypeScript와 함께 작업할 때 이 작업은 더욱 중요해집니다. 이 포스트에서는 TypeScript와 JSX를 사용하여 React 컴포넌트의 state를 초기화하는 방법을 살펴보겠습니다.
1. State 초기화하기
보통 React 함수 컴포넌트 내에서 state를 초기화할 때에는 useState
훅을 사용합니다.
import React, { useState } from 'react';
const MyComponent: React.FC = () => {
// 초기값이 0인 count state를 선언
const [count, setCount] = useState(0);
// ... (이하 생략)
}
위 예제에서 useState
함수를 사용하여 count
라는 state를 초기값 0
으로 초기화했습니다.
2. TypeScript에서 초기 state 타입 지정하기
TypeScript를 사용하면, state의 타입을 명시적으로 지정하는 것이 중요합니다. 이를 위해서는 useState
함수를 호출할 때, 상태의 타입을 제네릭으로 전달해야 합니다.
import React, { useState } from 'react';
interface MyComponentState {
count: number;
name: string;
}
const MyComponent: React.FC = () => {
// 초기값이 주어진 MyComponentState를 타입으로 하는 state를 선언
const [state, setState] = useState<MyComponentState>({ count: 0, name: 'John' });
// ... (이하 생략)
}
위 예제에서 useState
의 제네릭으로 MyComponentState
인터페이스를 전달하여, 해당 인터페이스에 명시된 대로 state
를 초기화할 수 있습니다.
3. Class 컴포넌트에서 state 초기화하기
Class 컴포넌트를 사용하는 경우, constructor 안에서 state를 초기화합니다.
import React, { Component } from 'react';
interface MyComponentState {
count: number;
name: string;
}
class MyComponent extends Component<{}, MyComponentState> {
constructor(props: {}) {
super(props);
this.state = {
count: 0,
name: 'John'
};
}
// ... (이하 생략)
}
Class 컴포넌트에서는 Component
를 상속받은 후, constructor
메서드 내에서 this.state
를 초기화하여 사용합니다.
마치며
이번 포스트에서는 TypeScript와 JSX에서 React 컴포넌트의 state를 초기화하는 방법에 대해 알아보았습니다. useState
를 사용하여 함수 컴포넌트에서, 그리고 constructor
메서드를 사용하여 Class 컴포넌트에서 state를 초기화하는 방법을 살펴보았습니다. 이를 참고하여, 앞으로의 React 프로젝트에서 효과적으로 state를 다룰 수 있기를 바라겠습니다.
더 많은 정보는 React 공식 문서를 참고하시기 바랍니다.