使用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的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
JS的事件绑定深入认识
Jun 26 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
举例说明如何为JavaScript的方法参数设置默认值
Nov 17 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
Aug 03 Javascript
JavaScript基本类型值-Number类型
Feb 24 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
Aug 21 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
Angular 向组件传递模板的两种方法
Feb 23 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
jquery获取input输入框中的值
Nov 13 jQuery
Javascript类型判断相关例题及解析
Aug 26 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
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
php中curl使用指南
2015/02/05 PHP
PHP获取文件行数的方法
2015/06/10 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
Python实现的多线程http压力测试代码
2017/02/08 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
python logging设置level失败的解决方法
2020/02/19 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
python中if及if-else如何使用
2020/06/02 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
护士毕业生自荐信
2014/02/07 职场文书
说明书范文
2014/05/07 职场文书
工地标语大全
2014/06/18 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
退休欢送会致辞
2015/07/31 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL