useState
useState 組合式函式會建立一個響應式且支援伺服器端渲染的共用狀態。
用法
// Create a reactive state and set default value
const count = useState('counter', () => Math.round(Math.random() * 100))
由於
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) 指定狀態的類型