- 更多信息,请访问 Pinia - State
- 访问 state
-
默认情况下,通过 仓库实例 访问 state,直接对其进行读写
const store = useStore()
store.count++
- 重置 state
-
Setup Stores,需创建自己的 $reset(),手动还原
选项式 API,通过调用 store 的 $reset() 方法将 state 重置为初始值;简单粗暴
谨慎!!!
export const useCounterStore = defineStore('counter', () => {
const count = ref(0)
const $reset = () => {
count.value = 0
}
return { count, $reset }
})
- 变更 state
-
除了单独变更某个state外,还可以使用 patch ;且在同一时间更改多个属性
store.$patch({
count: store.count + 1,
age: 120,
name: 'DIO',
})
- 替换 state
-
直接赋值修改并不能完全替换掉 store 的 state,因为那样会破坏其响应性
store.$state = { count: 24 }
但是,你可以使用 patch ;且在同一时间更改多个属性
store.$patch({ count: 24, msg: 'hi,there.' })
或使用参数
store.$patch((state) => {
state.count = 1000;
state.msg = 'hi';
});
- 订阅 state
-
通过 store 的 $subscribe() 方法侦听 state 及其变化。比起普通的 watch(),使用 $subscribe() 的好处是 subscriptions 在
patch 后只触发一次
可以在 pinia 实例上使用 watch() 函数侦听整个 state