vue 重塑数组之修改数组指定index的值操作


Posted in Javascript onAugust 09, 2020

如下所示:

vm.items[indexOfItem] = newValue

vue不能检测数组的变动

想要实现可以使用vue的set方法

this.$set(this.items,indexOfItem,newValue);

补充知识:vue中利用索引直接设置一个数组项,不能触发视图更新的问题

由于 JavaScript 的限制,Vue 不能检测以下数组的变动:

1、当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue

2、当你修改数组的长度时,例如:vm.items.length = newLength

举个例子:

var vm = new Vue({
 data: {
  items: ['a', 'b', 'c']
 }
})
vm.items[1] = 'x' // 不是响应性的
vm.items.length = 2 // 不是响应性的

为了解决第一类问题,以下两种方式都可以实现和 vm.items[indexOfItem] = newValue 相同的效果,同时也将在响应式系统内触发状态更新:

// Vue.set

Vue.set(vm.items, indexOfItem, newValue)

// Array.prototype.splice

vm.items.splice(indexOfItem, 1, newValue)

你也可以使用 vm.$set 实例方法,该方法是全局方法 Vue.set 的一个别名:

vm.$set(vm.items, indexOfItem, newValue)

为了解决第二类问题,你可以使用 splice:

vm.items.splice(newLength)

以上这篇vue 重塑数组之修改数组指定index的值操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
静态页面的值传递(三部曲)
Sep 25 Javascript
JavaScript 学习 - 提高篇
Feb 02 Javascript
项目中常用的JS方法整理
Jan 30 Javascript
JavaScript对象反射用法实例
Apr 17 Javascript
跟我学习javascript的垃圾回收机制与内存管理
Nov 23 Javascript
基于JQuery打造无缝滚动新闻步骤详解
Mar 31 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
微信小程序 首页制作简单实例
Apr 07 Javascript
在vscode里使用.vue代码模板的方法
Apr 28 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
vue element 生成无线级左侧菜单的实现代码
Aug 21 Javascript
原生js实现随机点名
Jul 05 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 #Javascript
bootstrap实现tab选项卡切换
Aug 09 #Javascript
vue动画—通过钩子函数实现半场动画操作
Aug 09 #Javascript
js利用iframe实现选项卡效果
Aug 09 #Javascript
解决vue 退出动画无效的问题
Aug 09 #Javascript
在vue中使用console.log无效的解决
Aug 09 #Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 #Javascript
You might like
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
浅谈React高阶组件
2018/03/28 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
详解Django中的form库的使用
2015/07/18 Python
Python中文竖排显示的方法
2015/07/28 Python
Python二分查找详解
2015/09/13 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
python数据分析:关键字提取方式
2020/02/24 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
python怎么对数字进行过滤
2020/07/05 Python
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
python flask框架快速入门
2021/05/14 Python
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS