使用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 相关文章推荐
优秀js开源框架-jQuery使用手册(1)
Mar 10 Javascript
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
Mar 12 Javascript
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
Mar 27 Javascript
ajax+jQuery实现级联显示地址的方法
May 06 Javascript
Javascript 函数的四种调用模式
Nov 05 Javascript
详谈js遍历集合(Array,Map,Set)
Apr 06 Javascript
详解vue.js的事件处理器v-on:click
Jun 27 Javascript
extjs简介_动力节点Java学院整理
Jul 17 Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
Mar 09 Javascript
详解javascript设计模式三:代理模式
Mar 25 Javascript
vue+springboot实现登录验证码
May 27 Vue.js
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 安全过滤函数代码
2011/05/07 PHP
二招解决php乱码问题
2012/03/25 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
在python中修改.properties文件的操作
2020/04/08 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
台湾森森购物网:U-mall
2017/10/16 全球购物
环境工程大学生自荐信
2013/10/21 职场文书
农救科工作职责
2013/11/27 职场文书
千元咖啡店的创业计划书范文
2013/12/29 职场文书
捐资助学倡议书
2014/04/15 职场文书
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers