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 相关文章推荐
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
Jan 10 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
May 27 Javascript
实例分析js和C#中使用正则表达式匹配a标签
Nov 26 Javascript
基于javascript实现判断移动终端浏览器版本信息
Dec 09 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
May 14 Javascript
在Javascript中处理字符串之big()方法的使用
Jun 08 Javascript
vue不通过路由直接获取url中参数的方法示例
Aug 24 Javascript
javascript、php关键字搜索函数的使用方法
May 29 Javascript
vue-form表单验证是否为空值的实例详解
Oct 29 Javascript
JS实现简易留言板增删功能
Feb 08 Javascript
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
Node.js中的异步生成器与异步迭代详解
Jan 31 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
a标签调用js的方法总结
2019/09/05 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python递归函数绘制分形树的方法
2018/06/22 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
工作人员思想汇报
2014/01/09 职场文书
国家助学金获奖感言
2014/01/31 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
Python合并多张图片成PDF
2021/06/09 Python