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类继承机制的原理分析
Sep 12 Javascript
JavaScript实现复制功能各浏览器支持情况实测
Jul 18 Javascript
禁用JavaScript控制台调试的方法
Mar 07 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
Jun 16 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
再谈javascript原型继承
Nov 10 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
Jul 13 Javascript
详解用webpack把我们的业务模块分开打包的方法
Jul 20 Javascript
微信小程序实现自定义加载图标功能
Jul 19 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
Sep 30 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 Javascript
Antd下拉选择,自动匹配功能的实现
Oct 24 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
类的另类用法--数据的封装
2006/10/09 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
python操作日期和时间的方法
2014/03/11 Python
python之yield表达式学习
2014/09/02 Python
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
python的faker库用法
2019/11/28 Python
python为什么会环境变量设置不成功
2020/06/23 Python
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
高级护理专业大学生求职信
2013/10/24 职场文书
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
大学生自我鉴定
2013/12/16 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
宣传稿格式范文
2015/07/23 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
创业计划书介绍
2019/04/24 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python