首页 > 其他 > 详细

vue对象属性变化页面未改变 & Vue.$set

时间:2020-08-11 16:48:23      阅读:279      评论:0      收藏:0      [点我收藏+]

在 created 阶段,视图未渲染时,直接对数组元素 arrList 赋值 data 里面的初值会发生改变;

在 mounted 阶段,直接对数组元素 arrList 赋值会导致Vue无法更新View

( 此时在mounted阶段,简单的做法是不要对数组元素赋值,而是对具体元素的属性进行更新 )

 

下面具体阐述:

技术分享图片

 如果像上面这样,在 mounted 中直接改变原数组中某一个对象,

则页面渲染如下:我们发现页面并未重新渲染,data 值的改变未被侦测到。

技术分享图片

【解决方案一】:改的是具体的某个属性,而非整个对象

技术分享图片

 

 页面渲染如下:  对象属性值的变化被侦测到,页面渲染发生改变

技术分享图片

【解决方案二】:通过 splice() 方法,删除某个元素后,再添加一个元素,达到“赋值”的效果:

技术分享图片

 

 【解决方案三】:  在 created 钩子中修改整个对象的值

 技术分享图片

  页面渲染如下:  对象属性值的变化被侦测到,页面渲染发生改变

技术分享图片

【解决方案四】:在created 或 mounted 中,调用 vm.$set(target, key, newValue) 或 Vue.set(target, key, newValue)

技术分享图片

 

技术分享图片

 

vue对象属性变化页面未改变 & Vue.$set

原文:https://www.cnblogs.com/edwardwzw/p/13476151.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!