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实现self的resend
Jul 22 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 Javascript
JavaScript 函数模式详解及示例
Sep 07 Javascript
jQuery动态修改字体大小的方法【测试可用】
Sep 09 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
Jul 26 Javascript
Vue中android4.4不兼容问题的解决方法
Sep 04 Javascript
angular 服务的单例模式(依赖注入模式下)详解
Oct 22 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
Mar 11 Javascript
js作用域及作用域链工作引擎
Jul 07 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
推荐php模板技术[转]
2007/01/04 PHP
抓取YAHOO股票报价的类
2009/05/15 PHP
深入php数据采集的详解
2013/06/02 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
Python装饰器用法实例总结
2018/05/26 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Django如何将URL映射到视图
2019/07/29 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
眼镜促销方案
2014/03/15 职场文书
目标责任书范文
2014/04/14 职场文书
市场营销工作计划书
2014/05/06 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python
正则表达式基础与常用验证表达式
2022/06/16 Javascript