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对象链式操作代码(jquery)
Jul 04 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
Mar 12 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
Oct 08 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
Jul 13 Javascript
javascript检测flash插件是否被禁用的方法
Jan 14 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 Javascript
详解webpack+vue-cli项目打包技巧
Jun 17 Javascript
JS实现搜索关键词的智能提示功能
Jul 07 Javascript
微信小程序版翻牌小游戏
Jan 26 Javascript
JS严格模式知识点总结
Feb 27 Javascript
vue中render函数的使用详解
Oct 12 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多种序列化与反序列化的方法
2013/06/06 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
Yii实现简单分页的方法
2016/04/29 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
python修改注册表终止360进程实例
2014/10/13 Python
Python提取网页中超链接的方法
2016/09/18 Python
python rsa 加密解密
2017/03/20 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
python中id函数运行方式
2020/07/03 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
小学生新学期寄语
2014/01/19 职场文书
运动会通讯稿200字
2014/02/16 职场文书
《乌塔》教学反思
2014/02/17 职场文书
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL