使用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弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 Javascript
js中Image对象以及对其预加载处理示例
Nov 20 Javascript
node.js中的fs.readSync方法使用说明
Dec 17 Javascript
Node.js操作mysql数据库增删改查
Mar 30 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
Aug 20 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
Aug 29 Javascript
Vuejs第十二篇之动态组件全面解析
Sep 09 Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 Javascript
Vue.js学习之计算属性
Jan 22 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
Nov 23 Javascript
使用ajax的post同步执行(实现方法)
Dec 21 Javascript
在JavaScript中实现链式调用的实现
Dec 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脚本的10个技巧(1)
2006/10/09 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
javascript第一课
2007/02/27 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
用jQuery实现抽奖程序
2020/04/12 jQuery
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
学习雷锋精神心得体会范文
2014/03/12 职场文书
创业计划书之家教中心
2019/09/25 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫