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中的关键字"VAR"使用详解 分享
Jul 31 Javascript
jquery 延迟执行实例介绍
Aug 20 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
Mar 11 Javascript
基于Node的React图片上传组件实现实例代码
May 10 Javascript
slideToggle+slideup实现手机端折叠菜单效果
May 25 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
May 07 Javascript
countUp.js实现数字滚动效果
Oct 18 Javascript
基于javascript实现贪吃蛇经典小游戏
Apr 10 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
Mar 08 Javascript
JavaScript DOM常用操作代码汇总
Jul 03 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批量生成随机用户名
2008/07/10 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
python实现各进制转换的总结大全
2017/06/18 Python
python 识别图片中的文字信息方法
2018/05/10 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
文员岗位职责
2013/11/09 职场文书
小学评语大全
2014/04/22 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
MySQL开启事务的方式
2021/06/26 MySQL
Golang 切片(Slice)实现增删改查
2022/04/22 Golang