0

改变数组表示的状态的正确模式是什么?

在 Vuex 4 的标准示例中: VUEX4 GitHub 示例1

建议删除一个数组元素并插入一个新元素。

 state.todos.splice(index, 1, {
      ...todo,
      text,
      done,
    });

这是为 Vuex 4、Vue 3 更改存储数组的标准模式吗?

另一个直接修改数组中的对象字段的例子: VUEX4 GitHub example2

   const cartItem = state.items.find(item => item.id === id)
   cartItem.quantity++

在 Vuex 4 中改变状态数组而不失去反应性的正确方法是什么?是否可以通过索引直接修改数组的项目,例如 example2?VUEX4 是否具有反应性 - 或者反应性是唯一组件的属性?

4

1 回答 1

1

没有约定。将 Vuex 视为只是 javscript。在您展示的第一个示例中,作者这样做是因为这是最方便的方法。

这是在索引处插入元素的最高评价答案:如何将项目插入到特定索引处的数组中(JavaScript)?,这就是示例 1 正在做的事情。

也许您会感到困惑,因为 Vue 2 有反应性警告,并且该.splice示例可能不是反应性的。Vue 3 没有 Vue 2 的反应性警告。

于 2021-05-01T21:02:26.550 回答