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 相关文章推荐
用js做一个小游戏平台 (一)
Dec 29 Javascript
VBS通过WMI监视注册表变动的代码
Oct 27 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
May 03 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
通过onmouseover选项卡实现img图片的变化
Feb 12 Javascript
jQuery中nextUntil()方法用法实例
Jan 07 Javascript
微信小程序 封装http请求实例详解
Jan 16 Javascript
jquery.pagination.js分页使用教程
Oct 23 jQuery
使用form-create动态生成vue自定义组件和嵌套表单组件
Jan 18 Javascript
javascript中this的用法实践分析
Jul 29 Javascript
vue实现带过渡效果的下拉菜单功能
Feb 19 Javascript
javascript实现京东登录显示隐藏密码
Aug 02 Javascript
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
文件上传程序的全部源码
2006/10/09 PHP
PHP 已经成熟
2006/12/04 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP new static 和 new self详解
2017/02/19 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Django web框架使用url path name详解
2019/04/29 Python
python算法题 链表反转详解
2019/07/02 Python
关于python中密码加盐的学习体会小结
2019/07/15 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
机电一体化自荐信
2013/12/10 职场文书
给老婆大人的检讨书
2014/02/24 职场文书
市场营销方案范文
2014/03/11 职场文书
2014年师德承诺书
2014/05/23 职场文书
保护环境的标语
2014/06/09 职场文书
2014年居委会工作总结
2014/12/09 职场文书
中国世界遗产导游词
2015/02/13 职场文书
教务处干事工作总结
2015/08/14 职场文书
优质护理心得体会
2016/01/22 职场文书