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 String对象扩展HTML编码和解码的方法
Jun 02 Javascript
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
js常用代码段收集
Oct 28 Javascript
jquery easyui combobox模糊过滤(示例代码)
Nov 30 Javascript
浅谈javascript六种数据类型以及特殊注意点
Dec 20 Javascript
window.open打开页面居中显示的示例代码
Dec 27 Javascript
深入理解jQuery.data() 的实现方式
Nov 30 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
Feb 04 Javascript
fastadmin中调用js的方法
May 14 Javascript
Vue的属性、方法、生命周期实例代码详解
Sep 17 Javascript
修改vue源码实现动态路由缓存的方法
Jan 21 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
Nov 01 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 事件机制(2)
2011/03/23 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
2014/07/24 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
php实现session共享的实例方法
2019/09/19 PHP
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
python为tornado添加recaptcha验证码功能
2014/02/26 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
Python中dict和set的用法讲解
2019/03/28 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
python打开windows应用程序的实例
2019/06/28 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
社会工作专业自荐信
2014/09/26 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
学校食品安全责任书
2015/01/29 职场文书
高中美术教学反思
2016/02/17 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python
Redis特殊数据类型bitmap位图
2022/06/01 Redis