Pinia的this.$patch(partial)解析

23 阅读1分钟

this.$patch(partial); 的意思是:使用给定的 partial 对象,对当前 store 的 state(状态)进行部分更新(批量更新)。

具体解释如下:

  • $patch 方法: 这是 Pinia store 实例提供的一个方法。与直接修改 state 属性(如 this.name = ‘xx’)不同,$patch 允许你一次性传入一个对象,将对象上的所有属性浅合并到 store 的当前 state 中。

  • partial 参数: 它的类型是 Partial<UserState>,这意味着它包含 UserState 类型中部分属性的键值对。

举例说明: 假设 UserState 的结构如下:

// 假设 UserState 是这样
{
  name: ‘Alice’,
  age: 30,
  email: ‘alice@example.com’
}

如果调用 setInfo({ name: ‘Bob’, age: 25 })

  • 执行 this.$patch({ name: ‘Bob’, age: 25 });
  • 结果name 变成 ‘Bob’,age 变成 25,而 email 保持不变(没有被影响)。

这样做的好处: 相比逐条写 this.name = ...; this.age = ...;$patch 更加简洁,并且在某些场景下(如批量更新)性能更优(它会将多个更新合并为一次响应式更新,减少不必要的视图重绘)。