儲存狀態
應用程式需要儲存狀態才能發揮作用,否則它們就只是靜態頁面。
Qwik 追蹤應用程式狀態有兩個原因
-
當應用程式在伺服器端暫停時序列化數據,並在應用程式在客戶端端恢復時反序列化數據。
-
在儲存區上建立訂閱,以便 Qwik 知道要重新渲染哪些元件。如果 Qwik 沒有追蹤訂閱,它就必須重新渲染整個應用程式,這將違背惰性加載的目的。
右邊的元件還不能運作,因為 counter
只是一個沒有訂閱的普通物件。因此,Qwik 不知道 counter.count
何時更改,因此也不知道要重新渲染 <App>
元件。
**您的任務:** 將
counter
包裝在useStore()
中,以啟用依賴項追蹤和自動重新渲染。
序列化
打開「HTML」標籤,查看伺服器序列化了哪些信息。在 <script type="qwik/json">
區塊中查找序列化信息,並注意
{count: 0}
位於序列化狀態中。- 在序列化狀態的末尾是
subs
,其中包含"count"
。這些訂閱會告訴 Qwik 狀態更改時要重新渲染哪個元件。
Qwik 狀態與建立它的元件没有任何關聯。狀態可以傳遞給應用程式中的任何元件,並且 Qwik 會建立所需的訂閱,並且只重新渲染受影響的元件。
編輯教學