]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
docs(zh): translate state subscription flush timing (#2994)
authorDDDDD12138 <43703884+DDDDD12138@users.noreply.github.com>
Fri, 27 Jun 2025 18:20:36 +0000 (02:20 +0800)
committerGitHub <noreply@github.com>
Fri, 27 Jun 2025 18:20:36 +0000 (20:20 +0200)
packages/docs/zh/core-concepts/state.md

index 22d724456e23fe41c1706d8373e5cc10dee89869..cca0a8c56b1fd575fb51db4625dc2adcf1cdf528 100644 (file)
@@ -252,6 +252,19 @@ cartStore.$subscribe((mutation, state) => {
 })
 ```
 
+### 刷新时机 %{#flush-timing}%
+
+在底层实现上,`$subscribe()` 使用了 Vue 的 `watch()` 函数。你可以传入与 `watch()` 相同的选项。当你想要在 **每次** state 变化后立即触发订阅时很有用:
+
+```ts{4}
+cartStore.$subscribe((state) => {
+  // 每当状态发生变化时,将整个 state 持久化到本地存储
+  localStorage.setItem('cart', JSON.stringify(state))
+}, { flush: 'sync' })
+```
+
+### 取消订阅 %{#detaching-subscriptions}%
+
 默认情况下,_state subscription_ 会被绑定到添加它们的组件上 (如果 store 在组件的 `setup()` 里面)。这意味着,当该组件被卸载时,它们将被自动删除。如果你想在组件卸载后依旧保留它们,请将 `{ detached: true }` 作为第二个参数,以将 _state subscription_ 从当前组件中*分离*:
 
 ```vue