在 Vue 3 中,v-for
指令的数组更新行为进行了升级处理。在 Vue 2 中,当使用 v-for
渲染数组时,如果对数组进行了以下操作,Vue 无法检测到变化:
- 直接通过索引修改数组元素,例如
arr[0] = newValue
- 修改数组的长度,例如
arr.length = 0
在 Vue 3 中,这些操作会被视为响应式的,即 Vue 能够检测到数组的变化。这是因为 Vue 3 使用了 Proxy 来实现响应式系统,能够更好地追踪数组的变化。
因此,在 Vue 3 中,你可以直接对数组进行上述操作,而无需使用 Vue 提供的特殊方法(例如 $set
或 splice
)来触发响应式更新。这是 Vue 3 在数组方面的一个重要升级。
工具大全:https://aiburgeon.com/siteCollection/