使用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 相关文章推荐
Apply an AutoFormat to an Excel Spreadsheet
Jun 12 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
浅谈JavaScript Array对象
Dec 29 Javascript
jQuery插件pagination实现分页特效
Apr 12 Javascript
JavaScript 动态加载脚本和样式的方法
Apr 13 Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 Javascript
详解webpack es6 to es5支持配置
May 04 Javascript
vue中的scope使用详解
Oct 29 Javascript
在 React、Vue项目中使用SVG的方法
Feb 09 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
Jan 24 jQuery
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 Javascript
前端如何实现动画过渡效果
Feb 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 操作excel文件的方法小结
2009/12/31 PHP
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
Python psutil模块简单使用实例
2015/04/28 Python
python获取文件扩展名的方法
2015/07/06 Python
在Django的URLconf中使用命名组的方法
2015/07/18 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
python文件与目录操作实例详解
2016/02/22 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
python3.4实现邮件发送功能
2018/05/28 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
详解python tkinter模块安装过程
2020/01/06 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
党员教师自我剖析材料
2014/09/29 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python