useState
useState コンポーザブルは、リアクティブで SSR フレンドリーな共有状態を作成します。
使用法
// リアクティブな状態を作成し、デフォルト値を設定
const count = useState('counter', () => Math.round(Math.random() * 100))
こちらも参照 getting-started > state-management
useState
内のデータは JSON にシリアライズされるため、クラス、関数、シンボルなど、シリアライズできないものを含まないことが重要です。
useState
はコンパイラによって変換される予約関数名であるため、自分の関数に useState
という名前を付けるべきではありません。
shallowRef
の使用
状態を深くリアクティブにする必要がない場合は、useState
を shallowRef
と組み合わせることができます。これにより、状態に大きなオブジェクトや配列が含まれる場合のパフォーマンスが向上します。
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
: (TypeScript のみ)状態の型を指定します。
※このページは Nuxt.js 公式ドキュメントの翻訳ページ(非公式)です。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/api/composables/use-state