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 相关文章推荐
网站404页面3秒后跳到首页的实例代码
Aug 16 Javascript
jquery 页面滚动到指定DIV实现代码
Sep 25 Javascript
jQuery基于当前元素进行下一步的遍历
May 20 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
Nov 25 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
Jun 08 Javascript
响应式表格之固定表头的简单实现
Aug 26 Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
Sep 15 Javascript
vue iView 上传组件之手动上传功能
Mar 16 Javascript
layui写后台表格思路和赋值用法详解
Nov 14 Javascript
如何使JavaScript休眠或等待
Apr 27 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的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
js对象基础实例分析
2015/01/13 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
详解jquery和vue对比
2019/04/16 jQuery
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python中的高级数据结构详解
2015/03/27 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
优秀学生干部个人的自我评价
2013/10/04 职场文书
大学团支书的自我评价分享
2013/12/14 职场文书
电脑教师的自我评价
2013/12/18 职场文书
2014年母亲节寄语
2014/05/07 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
高一作文之乐趣
2019/11/21 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers