vue页面刷新时原有的数据还在吗,vue 数据刷新
本文主要介绍了vue数据改变但页面刷新的问题,有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
目录
vue数据更改,但页面刷新。watch监视数据更改,但页面不刷新。它不监控数据变化。它会更改数据,但不会自动刷新。做个结论。
vue数据变化但页面刷新
watch监听到数据的变化但页面没有刷新
加上这个。$forceUpdate()在数据的代码更改后;
加上这个。$ force update();进行强制渲染,效果实现。因为数据层次太多,渲染函数没有自动更新,需要手动刷新。
没有监听到数据的变化
例如:
当数组中的一个项或对象中的一个元素发生变化时,监视不会生效。
要触发数组侦听,下面的方法可以触发。
如:splice(),push() 等js方法
当然,你也可以用这个方法。vue中的$set(对象、索引、新)
这个。$set()方法是vue附带的为数组和对象赋值并触发监听的方法。
第一个参数是要更改的数组或对象,第二个参数是下标,或者第三个参数元素名是新值。
改变了数据却没有自动刷新
有两个按钮。按钮上有一个数字属性。当值为偶数时,按钮显示为红色。
初始数据如下:
a: [{姓名:一 },{姓名:二,号码:2 }]
现象如下:点击第一个按钮时,数据发生变化,但界面没有相应刷新;这是再次点击第二个按钮,发现第二个按钮是正常的,当第二个按钮被刷新时,第一个按钮也被刷新。
原因是:a.number=undefined,是一个常数。在渲染第一个按钮的时候,第一个按钮的类并没有绑定到第一个对象的属性号,所以当这个号发生变化的时候,不会触发界面刷新。当第二个按钮导致界面刷新时,第一个
一个按钮也会刷新界面。Vue。vue中提供了$forceUpdate()方法来强制刷新界面。
说下结论
绑定属性时,不要绑定未定义的属性,否则无法及时触发界面刷新。
模板
差异
span v-for=(x,ind) in a
:key=ind
@click=clickSpan(x)
:class= { red number:x . number % 2==0 }
{{x.name}}: {{x.number}}
/span
/div
/模板
脚本
导出默认值{
data() {
返回{
a: [{姓名:一 },{姓名:二,号码:2 }]
}
},
方法:{
单击Span(x) {
如果(!x . number)x . number=0;
x.number=1
}
}
}
/脚本
风格。红色号码{
颜色:红色;
}
* {
字体大小:20px
用户选择:无;
}
/风格
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。