ai问答:Vue3中使用computed和watch监听pinia数据的区别
在Vue3中,通过computed来监听pinia中的state数据:
import { defineStore } from 'pinia' import { useStore } from 'pinia' import { computed } from 'vue' const store = defineStore('store', {/* ... */}) export default { setup() { const doubledCount = computed(() => { return useStore().count * 2 }) return { doubledCount } } }
这里,通过computed()创建一个计算属性doubledCount,在getter函数中使用useStore()获取pinia的state,并返回计算后的值。
那么doubledCount就会依赖store.count,当store.count变化时,doubledCount也会更新。
watch
import { defineStore } from 'pinia' import { useStore } from 'pinia' import { watch } from 'vue' const store = defineStore('store', {/* ... */}) export default { setup() { const localCount = useStore().count watch(localCount, (newValue) => { // 监听localCount,当store.count变化时也会触发 console.log(newValue) }) } }
这里,通过useStore()从pinia state中获取localCount。
然后通过watch来监听localCount,因为localCount依赖store.count,所以当store.count变化时,watch的回调也会触发,实现了pinia state变化的响应。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)