使用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加强之自定义event事件
Sep 21 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
Bootstrap学习笔记之js组件(4)
Jun 12 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
Angular2 环境配置详细介绍
Sep 21 Javascript
jQuery实现删除li节点的方法
Dec 06 Javascript
详解Node.js串行化流程控制
May 04 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
Jul 05 Javascript
javascript 中模板方法单例的实现方法
Oct 17 Javascript
基于three.js编写的一个项目类示例代码
Jan 05 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 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中检查文件或目录是否存在的代码小结
2012/10/22 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
解析php5配置使用pdo
2013/07/03 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
js生成随机数之random函数随机示例
2013/12/20 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
js实现无缝滚动图
2017/02/22 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
Python多线程和队列操作实例
2015/06/21 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
String是最基本的数据类型吗?
2013/06/13 面试题
学风建设演讲稿
2014/09/12 职场文书
重阳节主题班会
2015/08/17 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
创业计划书之废品回收
2019/09/26 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript