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 相关文章推荐
16个最流行的JavaScript框架[推荐]
May 29 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
May 02 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
JavaScript每天必学之基础知识
Sep 17 Javascript
Node.js中 __dirname 的使用介绍
Jun 19 Javascript
JSON对象转化为字符串详解
Aug 11 Javascript
用js实现before和after伪类的样式修改的示例代码
Sep 07 Javascript
Node.js 使用流实现读写同步边读边写功能
Sep 11 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
Oct 16 Javascript
webpack打包非模块化js的方法
Oct 24 Javascript
node express使用HTML模板的方法示例
Aug 22 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 大数据量及海量数据处理算法总结
2011/05/07 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
vue点击页面空白处实现保存功能
2019/11/06 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
python中count函数简单的实例讲解
2020/02/06 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
挂职自我鉴定
2014/02/26 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
申报优秀教师材料
2014/12/16 职场文书
宣传稿格式范文
2015/07/23 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers