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文件的小脚本
Jun 28 Javascript
js限制文本框为整数和货币的函数代码
Oct 13 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
JavaScript基础语法、dom操作树及document对象
Dec 02 Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 Javascript
解析预加载显示图片艺术
Dec 05 Javascript
canvas学习之API整理笔记(一)
Dec 29 Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 Javascript
2种简单的js倒计时方式
Oct 20 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
微信小程序 行的删除和增加操作实现详解
Sep 29 Javascript
详解JavaScript类型判断的四种方法
Oct 21 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实现向javascript传递数组的方法
2015/07/27 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
node.js入门教程
2014/06/01 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
django之常用命令详解
2016/06/30 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
python实现自动化上线脚本的示例
2019/07/01 Python
浅谈Python 递归算法指归
2019/08/22 Python
Python 使用type来定义类的实现
2019/11/19 Python
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
北京大学自荐信范文
2014/01/28 职场文书
青年文明号口号
2014/06/17 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
课题研究阶段性总结
2015/08/13 职场文书
远程教育培训心得体会
2016/01/09 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
汽车销售合同文本
2019/08/08 职场文书
PyQt5实现多张图片显示并滚动
2021/06/11 Python