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 相关文章推荐
Javascript 实现复制(Copy)动作方法大全
Jun 20 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 Javascript
js实现当前输入框高亮显示的方法
Aug 19 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
Apr 28 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
Jun 12 Javascript
JavaScript数据类型转换的注意事项
Jul 31 Javascript
微信小程序 progress组件详解及实例代码
Oct 25 Javascript
详解Vue快速零配置的打包工具——parcel
Jan 16 Javascript
JS判断用户用的哪个浏览器实例详解
Oct 09 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
微信小程序中使用vant框架的具体步骤
Feb 18 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数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php生成随机颜色的方法
2014/11/13 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
详解Python中的条件判断语句
2015/05/14 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
财务会计毕业生自荐信
2013/11/02 职场文书
大型会议策划方案
2014/05/17 职场文书
小学班主任自我评价
2015/03/11 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
行政申诉状范文
2015/05/20 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers