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 相关文章推荐
addEventListener 的用法示例介绍
May 07 Javascript
jQuery实现ichat在线客服插件
Dec 29 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
Jan 24 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
原生js和jQuery写的网页选项卡特效对比
Apr 27 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
Dec 22 Javascript
Jil,高效的json序列化和反序列化库
Feb 15 Javascript
详解在vue-cli项目中安装node-sass
Jun 21 Javascript
详解React中的组件通信问题
Jul 31 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
微信小游戏中three.js离屏画布的示例代码
Oct 12 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 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页面间传递参数实例代码
2008/06/05 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
javascript实现延时显示提示框效果
2017/06/01 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
Vue性能优化的方法
2020/07/30 Javascript
使用python实现baidu hi自动登录的代码
2013/02/10 Python
Pyhton中防止SQL注入的方法
2015/02/05 Python
python仿抖音表白神器
2019/04/08 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
优秀的毕业生的自我评价
2013/12/12 职场文书
2014升学宴答谢词
2014/01/26 职场文书
优质服务活动实施方案
2014/05/02 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
学校食堂标语
2014/10/06 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS