vue.js中$set与数组更新方法


Posted in Javascript onMarch 08, 2018

由于 JavaScript 的限制,Vue 不能检测以下变动的数组:

当利用索引直接设置数组的某一项时,例如:vm.items[indexOfItem] = newValue

当你修改数组的长度时,例如:vm.items.length = newLength,不会更新数组。

当然vue中给了解决方法,就是使用 Vue.set, vm.$set(Vue.set的变种写法)或者 splice,caoncat等修改数组,同时也将触发状态更新:

ex:

vue.js中$set与数组更新方法

所以如果在实例创建后添加新的属性到实例上,则不会触发更新。

ps:现在有两个数组,分别为arr1,arr2,如果arr1以下标赋值改变数组,arr2以$set改变数组,结果是什么样呢?

data:{
 arr1 = ['a','b','c'];
 arr2 = [‘foo','bar','baz'];  
}

vm.arr1[1] = 'alpha';
vm.$set(vm.arr2, 1, 'alpha');

根据开始我们说的根据下标索引改变数组不能触发状态更新,我们会知道:第一个数组的第二项改变不会在页面更新,只有第二个数组的更改会在页面更新。然而结果却是:

arr1 = ['a', 'alpha', 'b', 'c'];
arr2 = [‘foo', 'alpha', 'bar','baz'];

两个数组的值都更新了,也就是说,arr2用$set()方法更新时,页面会全部更新一遍。

以上这篇vue.js中$set与数组更新方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 Javascript
在JS中如何调用JSP中的变量
Jan 22 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 Javascript
indexOf 和 lastIndexOf 使用示例介绍
Sep 02 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
Nov 18 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
Sep 14 Javascript
基于jQuery实现照片墙自动播放特效
Jan 12 Javascript
JavaScript事件对象event用法分析
Jul 27 Javascript
4 种滚动吸顶实现方式的比较
Apr 09 Javascript
小程序双头slider选择器的实现示例
Mar 31 Javascript
JQuery Ajax如何实现注册检测用户名
Sep 25 jQuery
vue与vue-i18n结合实现后台数据的多语言切换方法
Mar 08 #Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
Mar 08 #Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
Mar 08 #Javascript
JavaScript满天星导航栏实现方法
Mar 08 #Javascript
vue.js的computed,filter,get,set的用法及区别详解
Mar 08 #Javascript
详解从买域名到使用pm2部署node.js项目全过程
Mar 07 #Javascript
layui select动态添加option的实例
Mar 07 #Javascript
You might like
完美解决PHP中文乱码
2009/11/26 PHP
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
python逆向入门教程
2018/01/15 Python
python删除服务器文件代码示例
2018/02/09 Python
Python交互环境下实现输入代码
2018/06/22 Python
python中shell执行知识点
2020/05/06 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
员工年终演讲稿
2014/01/03 职场文书
物流仓管员工作职责
2014/01/06 职场文书
搞笑创意广告语
2014/03/17 职场文书
小学教师工作总结2015
2015/04/07 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
交通安全主题班会
2015/08/12 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python