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 相关文章推荐
javascript 跨浏览器开发经验总结(五) js 事件
May 19 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
Sep 03 Javascript
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
jqPlot 基于jquery的画图插件
Apr 26 Javascript
js实现消息滚动效果
Jan 18 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
jQuery实现全选、反选和不选功能
Aug 16 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
vue中的router-view组件的使用教程
Oct 23 Javascript
详解Vue 动态组件与全局事件绑定总结
Nov 11 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
Feb 01 Javascript
前端路由&webpack基础配置详解
Jun 10 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页面缓存ob系列函数介绍
2012/10/18 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
php实现的ping端口函数实例
2014/11/12 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
python使用正则筛选信用卡
2019/01/27 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
python代码实现猜拳小游戏
2020/11/30 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
工作表扬信的范文
2014/01/10 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
节水标语大全
2014/06/11 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
详解Python中的进程和线程
2021/06/23 Python
JS实现简单九宫格抽奖
2022/06/28 Javascript