使用Vue.set()方法实现响应式修改数组数据步骤


Posted in Javascript onNovember 09, 2019

在页面中显示数组数据时发现了一个问题,当在methods方法中修改数组数据后,虽然数组已经发生改变,但是改变后的数据并没有渲染到页面上。这是因为在VUE中,如果在实例创建之后添加新的属性或者改变属性到实例上,它将不会触发视图更新。

而Vue.set()方法能够确保响应式对象被创建后仍然是响应式的,同时触发视图更新,动态响应数据的变化。

用法如下:

Vue.set(object,index,value)

object:要更改的数据源(数组或对象)

index:数据的索引(第几项)

value:修改后的值

实例

<div v-for="(item,index) in state">
    <div class="student">
    <span>
     <img src="./../../../assets/icon.jpg">
     <span>小五</span>
    </span>
     <span><button @click="attence(index)">{{item}}</button></span>
    </div>
   </div>

使用Vue.set()方法实现响应式修改数组数据步骤

该页面的考勤情况数据来源于一个数组,点击以后,考勤情况将会发生改变。

data(){
    return{
     id:1,
     state:['未知','未知','未知','未知','未知','未知','未知','未知','未知']
    }
   },
   methods:{
    attence:function(num){
     if(this.state[num]=='未知'){
      Vue.set(this.state,num,'出勤');
     }
     else if(this.state[num]=='出勤'){
      Vue.set(this.state,num,'请假');
     }
     else if(this.state[num]=='请假'){
      Vue.set(this.state,num,'缺勤');
     }
     else if(this.state[num]=='缺勤'){
      Vue.set(this.state,num,'未知');
     }
    }
   }

在这段代码中,数组中的数据初始值全都是未知,点击按钮以后,attence()方法会根据传入的参数改变数组中的值,传入的参数是几就改变第几项的数据。页面将会及时对数据变化作出响应,渲染出来。

使用Vue.set()方法实现响应式修改数组数据步骤

注:该方法也可用来增加数据,只需将第二项的索引值赋为数组的长度,第三项为增加的数据值。

以上这篇使用Vue.set()方法实现响应式修改数组数据步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
Aug 28 Javascript
Javascript图片上传前的本地预览实例
Jun 16 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
深入理解JavaScript中的对象复制(Object Clone)
May 18 Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 Javascript
jQuery实现微信长按识别二维码功能
Aug 26 Javascript
JavaScript中动态向表格添加数据
Jan 24 Javascript
手机端转换rem适应
Apr 01 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
JavaScript实现二叉树定义、遍历及查找的方法详解
Dec 20 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
Jan 21 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
Sep 12 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 #Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
Nov 09 #Javascript
Vue实现点击按钮复制文本内容的例子
Nov 09 #Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
Nov 09 #Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 #Javascript
js实现的在本地预览图片功能示例
Nov 09 #Javascript
vue 取出v-for循环中的index值实例
Nov 09 #Javascript
You might like
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
python调用cmd复制文件代码分享
2013/12/27 Python
Python设计模式之代理模式实例
2014/04/26 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
Python中zfill()方法的使用教程
2015/05/20 Python
Flask-WTF表单的使用方法
2019/07/12 Python
Python list与NumPy array 区分详解
2019/11/06 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Pygame的程序开始示例代码
2020/05/07 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
城市创卫标语
2014/06/17 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
冰雪公主观后感
2015/06/16 职场文书
二婚主持词
2015/06/30 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
英镑符号 £
2022/02/17 杂记
python保存图片的四个常用方法
2022/02/28 Python