使用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 相关文章推荐
静态的动态续篇之来点XML
Dec 23 Javascript
javascript 设置某DIV区域内的checkbox复选框
Nov 30 Javascript
超轻量级的基于jquery的三级展开列表
Apr 26 Javascript
Javascript面向对象设计一 工厂模式
Dec 20 Javascript
jquery显示和隐藏div特效实例
Feb 27 Javascript
jQuery div层的放大与缩小简单实现代码
Mar 28 Javascript
js获取电脑分辨率的思路及操作
Nov 22 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
May 16 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
详解微信小程序 相对定位和绝对定位
May 11 Javascript
JavaScript实现九宫格拖拽效果
Jun 28 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执行速率优化技巧小结
2008/03/15 PHP
smarty section简介与用法分析
2008/10/03 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python实现月食效果实例代码
2019/06/18 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
火箭队口号
2014/06/18 职场文书
2014年公务员工作总结
2014/11/18 职场文书
欢迎词范文
2015/01/27 职场文书
行政处罚决定书
2015/06/24 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL