vue视图层不升级

作者 : 开心源码 本文共625个字,预计阅读时间需要2分钟 发布时间: 2022-05-14 共299人阅读
1、数组后随意添加一项再删除 (vue底层重新封装了push等方法)
this.showFileList.push(1); this.showFileList.pop();
2、扩展运算符
this.showFileList = [...this.showFileList];
3、复制一个新数组/对象

(只更改了地址,值不变,所以不触发升级)

4、this.$set

vue2.0 给data对象新添加属性,并触发视图升级

如下代码,给 student对象新添加 age 属性

data () {   return {     student: {       name: '',       sex: ''     }   } }

直接给student赋值操作,可以新添加属性,但是不会触发视图升级

eg:

mounted () { this.student.age = 24 }

起因:受 ES5 的限制,Vue.js 不能检测到对象属性的增加或者删除。由于 Vue.js 在初始化实例时将属性转为 getter/setter,所以属性必需在 data 对象上才能让 Vue.js 转换它,才能让它是响应的。

处理:使用$set()方法,既可以新添加属性,又可以触发视图升级。

错误写法:this.$set(key,value)(ps: 可能是vue1.0的写法)

mounted () { this.$set(this.student.age, 24) }

正确写法:this.$set(obj,’key’,’value’)

mounted () { this.$set(this.student,'age', 24) }
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » vue视图层不升级

发表回复