状态管理

@ Pinia
更多信息,请访问 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