使用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 相关文章推荐
Javascript Math ceil()、floor()、round()三个函数的区别
Mar 09 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
js原型链原理看图说明
Jul 07 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
js实现在文本框光标处添加字符的方法介绍
Nov 24 Javascript
详解AngularJS中的依赖注入机制
Jun 17 Javascript
Angular路由简单学习
Dec 26 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
Jan 11 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
Aug 25 Javascript
关于vue.js中实现方法内某些代码延时执行
Nov 14 Javascript
js实现可爱的气泡特效
Sep 05 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+DBM的同学录程序(3)
2006/10/09 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
PHP实现小偷程序实例
2016/10/31 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
Python抓取框架 Scrapy的架构
2016/08/12 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
python实现图片转字符画
2021/02/19 Python
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
行政助理岗位职责范文
2013/12/03 职场文书
公司财务自我评价分享
2013/12/17 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python
django 认证类配置实现
2021/11/11 Python