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 相关文章推荐
jquery ajax return没有返回值的解决方法
Oct 20 Javascript
Kibo 用于处理键盘事件的Javascript工具库
Oct 28 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 Javascript
使用 jQuery 实现表单验证功能
Jul 05 jQuery
使用Dropzone.js上传的示例代码
Oct 10 Javascript
vue 2.x 中axios 封装的get 和post方法
Feb 28 Javascript
axios使用拦截器统一处理所有的http请求的方法
Nov 02 Javascript
JS实现图片切换效果
Nov 17 Javascript
vue项目使用.env文件配置全局环境变量的方法
Oct 24 Javascript
详解JavaScript 异步编程
Jul 13 Javascript
JavaScript undefined及null区别实例解析
Jul 21 Javascript
Node 使用express-http-proxy 做api网关的实现
Oct 15 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 修改、增加xml结点属性的实现代码
2013/10/22 PHP
php的hash算法介绍
2014/02/13 PHP
百度地图API使用方法详解
2015/08/25 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
PHP中SESSION过期设置
2021/03/09 PHP
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
python迭代器常见用法实例分析
2019/11/22 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
六年级数学教学反思
2014/02/03 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
亲属关系公证书
2014/04/08 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
老人与海读书笔记
2015/06/26 职场文书
行政复议答复书
2015/07/01 职场文书
公司酒会主持词
2015/07/02 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书