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 相关文章推荐
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
Feb 24 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
Apr 08 Javascript
JavaSript中变量的作用域闭包的深入理解
May 12 Javascript
javascript遇到html5的一些表单属性
Jul 05 Javascript
JavaScript:Date类型全面解析
May 19 Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 Javascript
Javascript 一些需要注意的细节(必看篇)
Jul 08 Javascript
JSON 数据格式详解
Sep 13 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
nvm、nrm、npm 安装和使用详解(小结)
Jan 17 Javascript
JS实现秒杀倒计时特效
Jan 02 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中explode与split的区别介绍
2012/10/03 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
php判断表是否存在的方法
2015/06/18 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
经验几则 推荐
2006/09/05 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
python处理cookie详解
2014/02/07 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
使用Python绘制图表大全总结
2017/02/11 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
python tornado使用流生成图片的例子
2019/11/18 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
大学生职业生涯规划范文
2013/12/31 职场文书
岗位职责说明书模板
2014/07/30 职场文书
小学端午节活动总结
2015/02/11 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js