关于vue页面没有响应式更新的可能原因和解决方法
- 没有初始化该属性,后续添加的属性不是响应式的,可以使用set进行响应式的设置属性,也可以整个替换该对象。
- 数组使用下标的方式设置的值也是没有响应式的,因为直接通过下标操作数据Vue没法给他设置getter/setter,可以通过push等数组方法进行操作
- 数据更新了computed却没触发,很可能是因为上述两种不当方法操作数据的,导致数据不是响应式的,就无法触发computed。
- 有时使用上述不当方法进行操作数据后computed还能更新,是因为你computed所依赖的其他属性改变了,所以触发了。有时候你会发现使用不当方法修改了数据一直不触发computed,加个打印某个属性时又触发了,这其实就是访问了其他所依赖的属性所以才会触发
- 数据是不是响应式的可以通过控制台打印出来查看他有没有setter/getter属性