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 相关文章推荐
Extjs列表详细信息窗口新建后自动加载解决方法
Apr 02 Javascript
jquery 学习之二 属性相关
Nov 23 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
Nov 20 Javascript
js实现拖拽效果(构造函数)
Dec 14 Javascript
jQuery解析json格式数据简单实例
Jan 22 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
vue实现列表的添加点击
Dec 29 Javascript
vue-cli+webpack记事本项目创建
Apr 01 Javascript
js实现随机点名小功能
Aug 17 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
vue简单封装axios插件和接口的统一管理操作示例
Feb 02 Javascript
国内常用的js类库大全(CDN公共库)
Jun 24 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中数组元素升序、降序以及重新排序的函数
2013/06/20 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
使用js画图之画切线
2015/01/12 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
浅谈python中requests模块导入的问题
2018/05/18 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
什么是python的自省
2020/06/21 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
青年创业培训欢迎词
2014/01/08 职场文书
新春寄语大全
2014/04/09 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
Java 死锁解决方案
2022/05/11 Java/Android