nuxt logo

문서 번역(비공식)

useState

useState 컴포저블은 반응형이고 SSR 친화적인 공유 상태를 생성합니다.

사용법

// 반응형 상태를 생성하고 기본값 설정
const count = useState('counter', () => Math.round(Math.random() * 100))
이것도 참고 getting-started > state-management

useState 내부의 데이터는 JSON으로 직렬화되므로, 클래스, 함수 또는 심볼과 같이 직렬화할 수 없는 것을 포함하지 않는 것이 중요합니다.

useState는 컴파일러에 의해 변환되는 예약 함수 이름이므로, 자신의 함수를 useState로 명명해서는 안 됩니다.

shallowRef 사용하기

상태가 깊게 반응형일 필요가 없다면, useStateshallowRef와 결합할 수 있습니다. 이는 상태에 큰 객체와 배열이 포함될 때 성능을 향상시킬 수 있습니다.

const state = useState('my-shallow-state', () => shallowRef({ deep: 'not reactive' }))
// isShallow(state) === true

타입

useState<T>(init?: () => T | Ref<T>): Ref<T>
useState<T>(key: string, init?: () => T | Ref<T>): Ref<T>
  • key: 요청 간 데이터 페칭이 적절히 중복 제거되도록 보장하는 고유 키입니다. 키를 제공하지 않으면, useState 인스턴스의 파일 및 줄 번호에 고유한 키가 생성됩니다.
  • init: 상태가 초기화되지 않았을 때 초기 값을 제공하는 함수입니다. 이 함수는 Ref를 반환할 수도 있습니다.
  • T: (타입스크립트 전용) 상태의 타입을 지정합니다.