使用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 相关文章推荐
基于jQuery仿淘宝产品图片放大镜代码分享
Jun 23 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
Mar 18 Javascript
BootStrap中Table分页插件使用详解
Oct 09 Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 Javascript
JavaScript实现256色转灰度图
Feb 22 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
Jun 12 Javascript
基于js中的存储键值对以及注意事项介绍
Mar 30 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
Sep 28 Javascript
微信小程序自定义导航栏实例代码
Apr 05 Javascript
详解Vue demo实现商品列表的展示
May 07 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
js实现无刷新监听URL的变化示例代码详解
Jun 03 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
filemanage功能中用到的lib.js
2007/04/08 Javascript
javascript实现二分查找法实现代码
2007/11/12 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
Python构造函数及解构函数介绍
2015/02/26 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
PyTorch基本数据类型(一)
2019/05/22 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
文明村创建实施方案
2014/03/27 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
音乐课外活动总结
2015/05/09 职场文书
军训通讯稿范文
2015/07/18 职场文书
升学宴学生致辞
2015/07/27 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js