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 相关文章推荐
Javascript isArray 数组类型检测函数
Oct 08 Javascript
js字符串转成JSON
Nov 07 Javascript
jQuery实现鼠标经过图片预览大图效果
Apr 10 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
基于javascript的JSON格式页面展示美化方法
Jul 02 Javascript
理解javascript正则表达式
Mar 08 Javascript
基于jQuery实现选项卡效果
Jan 04 Javascript
Vue.use源码分析
Apr 22 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
Jul 03 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
async/await优雅的错误处理方法总结
Jan 30 Javascript
Vue实现Layui的集成方法步骤
Apr 10 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
php中的时间处理
2006/10/09 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
PHP多线程类及用法实例
2014/12/03 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
移动端js图片查看器
2016/11/17 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
浅谈Vue.js
2017/03/02 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
angular 服务随记小结
2019/05/06 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
python抓取文件夹的所有文件
2018/02/27 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
python实现PCA降维的示例详解
2020/02/24 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
大学生志愿者感言
2014/01/15 职场文书
捐书仪式主持词
2015/07/04 职场文书
校园之声广播稿
2015/08/18 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
php 原生分页
2021/04/01 PHP