pinia 的 actions 是业务逻辑核心,统一处理同步修改和异步操作;同步时直接通过 this 修改响应式 state,异步时用 async/await 管理副作用并实时更新状态,支持内部调用其他 action 或 getter,组件中须保持 this 上下文调用。

Pinia 的 actions 是编写业务逻辑的核心位置,它统一处理同步修改和异步操作,不再像 Vuex 那样拆分为 mutations 和 actions。写法简洁、语义清晰,且天然支持响应式更新。
同步 action:直接修改 state
在 action 函数内部,通过 this 访问并修改 state 中的属性。所有 state 属性都是响应式的,修改后会自动触发视图更新。
- state 必须用函数返回(如
state: () => ({ count: 0 })),确保每次创建 store 实例时获得独立响应式对象 - action 内直接赋值即可,比如
this.count++或this.user = data - 不需 return,也不用 commit,没有额外封装层
异步 action:配合 await/async 处理副作用
发起 API 请求、定时器、文件读取等异步任务时,把逻辑写在 action 中,并用 async/await 管理流程。过程中可实时更新 loading、error、data 等状态。

