pinia 的 subscribe
时间: 2023-11-16 20:54:17 浏览: 131
在Vue组件中使用Pinia
Pinia 的 `subscribe` 方法用于订阅 store 中 state 的变化,当 state 发生变化时,会触发回调函数执行。该方法的语法如下:
```javascript
store.subscribe(callback: (state, prevState) => void): () => void
```
其中,`callback` 是回调函数,`state` 是当前的 state,`prevState` 是变化前的 state。该方法返回一个取消订阅的函数。
例如,我们可以在组件中使用 `subscribe` 方法来监听 state 的变化:
```javascript
import { defineComponent, onMounted, ref } from 'vue'
import { useStore } from 'pinia'
export default defineComponent({
setup() {
const store = useStore()
const count = ref(store.state.count)
const unsubscribe = store.subscribe((state, prevState) => {
count.value = state.count
})
onMounted(() => {
console.log('mounted')
})
return {
count,
unsubscribe,
}
},
})
```
在上面的例子中,我们在组件中订阅了 `count` 的变化,并将其赋值给了 `count` 变量。当 `count` 发生变化时,回调函数会被触发,更新 `count` 变量的值。
阅读全文