vue $set 给数据赋值的实例


Posted in Javascript onNovember 09, 2019

如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。

业务介绍:模拟后台数据向DOM树上遍历数据,再向数据里添加状态属性,根据状态改变显示图片,默认nochecked.png,点击时改变状态。显示checked.png

DOM树

<div class="cartContent" :class="{'bg' : status == 2}" v-for="(val,key) in imgListData" :id="key">
<div class="choose">
![](../assets/img/radio-checked.png)
![](../assets/img/radio-nochecked.png)
</div>
.........
</div>

模拟数据

data(){
     return{
      responseData:[
        {'id':'1','name':'女装','price':115,'num':1,'pic':'../static/img/1.jpg'},
        {'id':'2','name':'男装','price':110,'num':1,'pic':'../static/img/2.jpg'},
        {'id':'3','name':'童装','price':118,'num':2,'pic':'../static/img/3.jpg'}
        ],
      imgListData:[]
     }
   },

向原数据添加新属性status

created() {
    this.allDataList()
},
methods:{
    allDataList(){
      for(let val of this.responseData){
//       val.status=false;//写这个有问题
       this.$set(val,'status',false)//此处为重点
       this.imgListData.push(val)
      }
       console.log(this.imgListData)
}

点击事件(根据索引改变当前属性的状态)

choose(index){
    if(this.imgListData[index].status){
     this.imgListData[index].status=false;
    }else{
     this.imgListData[index].status=true
    }
 },

输出发现有status属性,状态也由false改为了true,但是就是样式要刷新一下才能显示。把里面的属性仔细看一遍原来status没有get/set方法。错误展示:

vue $set 给数据赋值的实例

把 val.status=false; 改为this.$set(val,'status',false)问题就解决了。

以上这篇vue $set 给数据赋值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js利用Array.splice实现Array的insert/remove
Jan 13 Javascript
js checkbox(复选框) 使用集锦
Apr 28 Javascript
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
jQuery实战之品牌展示列表效果
Apr 10 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
Dec 23 Javascript
jQuery实现跨域
Feb 03 Javascript
jQuery插件实现控制网页元素动态居中显示
Mar 24 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
May 28 Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 Javascript
详解如何提升JSON.stringify()的性能
Jun 12 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
Nov 09 #Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
Nov 09 #Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 #Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
Nov 09 #Javascript
Vue实现点击按钮复制文本内容的例子
Nov 09 #Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
Nov 09 #Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 #Javascript
You might like
php数字游戏 计算24算法
2012/06/10 PHP
PHP 文件系统详解
2012/09/13 PHP
PHP编程函数安全篇
2013/01/08 PHP
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
FCK调用方法..
2006/12/21 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
Python中的heapq模块源码详析
2019/01/08 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
深入学习python多线程与GIL
2019/08/26 Python
pandas-resample按时间聚合实例
2019/12/27 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
幼儿教育感言
2014/02/05 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
实习单位评语
2014/04/26 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
化工实习心得体会
2014/09/09 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
勇敢的心观后感
2015/06/09 职场文书
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle