新增数据不是响应式建站数据,怎么让视图变化呢?
如果我们直接给数组或者对象中加入一个数据,虽然这个数组或者对象是响应式建站数据,但是它们都是引用类型,在引用类型中加入数据是不会触发更新的,因此只有直接将另一个引用重新赋值,才会触发更新,但是这么做明显是费力的,所以 Vue 提供了 Vue。 set 这个 API 来解决这个问题,下面来看看它是这么实现的。那么像 Vue。del 的实现逻辑跟 Vue。set 是类似的,甚至会更简单。 只要有一个对象使用了 Vue。set 或者 Vue。 del 或者是其他可以通知到当前渲染 watcher 的方法,都会导致整个组件被重新渲染,所以,如果修改一个对象的数据时,使用了比如 Vue。set...全部
如果我们直接给数组或者对象中加入一个数据,虽然这个数组或者对象是响应式建站数据,但是它们都是引用类型,在引用类型中加入数据是不会触发更新的,因此只有直接将另一个引用重新赋值,才会触发更新,但是这么做明显是费力的,所以 Vue 提供了 Vue。
set 这个 API 来解决这个问题,下面来看看它是这么实现的。那么像 Vue。del 的实现逻辑跟 Vue。set 是类似的,甚至会更简单。 只要有一个对象使用了 Vue。set 或者 Vue。
del 或者是其他可以通知到当前渲染 watcher 的方法,都会导致整个组件被重新渲染,所以,如果修改一个对象的数据时,使用了比如 Vue。set 方法,而修改另一个组件使用的是直接给对象添加数据,比如 this。
msg。b = 'b',那么第二种方式也会被重新渲染了。收起