透過 100+ 個技巧的集合來學習 Nuxt!

useState

useState composable 建立了一個響應式且對 SSR 友善的共享狀態。

用法

// Create a reactive state and set default value
const count = useState('counter', () => Math.round(Math.random() * 100))
請參閱 文件 > 入門指南 > 狀態管理 以了解更多資訊。
由於 useState 內部的資料將會序列化為 JSON,因此請務必確保它不包含任何無法序列化的內容,例如類別、函式或符號。
useState 是編譯器轉換的保留函式名稱,因此您不應將自己的函式命名為 useState
觀看 Alexander Lichter 的影片,了解為何以及何時使用 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:(僅限 typescript)指定狀態的類型