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 相关文章推荐
广告切换效果(缓动切换)
May 27 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
Oct 26 Javascript
重写javascript中window.confirm的行为
Oct 21 Javascript
JavaScript中按位“异或”运算符使用介绍
Mar 14 Javascript
JavaScript 开发工具webstrom使用指南
Dec 09 Javascript
JQuery操作textarea,input,select,checkbox方法
Sep 02 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
Nov 27 Javascript
jquery实现下拉框左右选择功能
Feb 21 Javascript
微信小程序如何获取手机验证码
Nov 04 Javascript
es6 symbol的实现方法示例
Apr 02 Javascript
详解小程序之简单登录注册表单验证
May 13 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
Sep 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中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
控制台报错object is not a function的解决方法
2014/08/24 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
pyv8学习python和javascript变量进行交互
2013/12/04 Python
详解Python发送邮件实例
2016/01/10 Python
Python中扩展包的安装方法详解
2017/06/14 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Python使用matplotlib简单绘图示例
2018/02/01 Python
用Python实现数据的透视表的方法
2018/11/16 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
Django框架封装外部函数示例
2019/05/28 Python
pow在python中的含义及用法
2019/07/11 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
python else语句在循环中的运用详解
2020/07/06 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
汽车专业学生自我评价
2014/01/19 职场文书
工程开工庆典邀请函
2014/02/01 职场文书
厂区绿化方案
2014/05/08 职场文书
财务工作检讨书
2014/10/29 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
关于做家务的心得体会
2016/01/23 职场文书
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android