vue 给数组添加新对象并赋值


Posted in Vue.js onApril 20, 2022

给数组添加新对象并赋值

方法一

适用于数组就只有一组

listData: [{name:"张三",age:18}],
//直接添加对象
listData.sex="男"

方法二

适用于数组中有多组信息

listData:[],
list:[{"张三","李四"}]
//比如想把另外一个数组中编列出来的值加入到这个数组中
   for (let index = 0; index < this.listlist.length; index++) {
          this.listData.push({ name: "" });
          this.listData[index].name= this.list[index];
        }

数组赋值踩过的坑及解决

最近需要在Vue当中完成动态赋值数组操作,从服务器拿到数据后,刷新数组中的数据,但是发现无论使用什么方法都不行,通过打log,发现数据在这里就无法向下执行,而且也没有报任何的异常,最终问题解决,在这里做个记录。

Vue中的数组赋值和在普通的JS中赋值还是有所区别。

  • 以下操作可以引起界面刷新:push,pop ,unshift,shift,reverse,sort,splice
  • 以下操作不会引起界面刷新:slice,concat ,filter

还有一点需要注意:

如果通过直接赋值或者改变长度是无法让界面刷新的。

(1)通过索引直接设置项。

(2)修改数组长度,mylist.length=3

第二点,在从服务器中获取数据后赋值需要注意一个问题:主体对象的改变。

比如在使用axios对象发起请求后,在返回方法中处理数据需要注意:

注意在axios的then方法中调用对象时,不能使用this对象,因为此时this对象指的是axios实例,所以通过this是获取不到vue实例中的data数据的,必须在外界使用一个值来指向vue实例对象,通过这个外部对象来赋值,才是正确的。

var self;
created:function(){
self = this;
},
mouted:function(){        
axios.create({
        baseURL: 'url',
        timeout: 10000,
        headers: { 'Content-Type': 'application/json' }
      }).get('xxxxxxxxxx')
          .then(function(response){
            if(response.data.dataList.length>0){
              var datalist = response.data.dataList;
              for(var i=0;i<datalist.length;i++){
                self.DeviceTypeList.push({devicetype:datalist[i].name});
              }
            }
        })
          .catch(function(error){
            console.log(JSON.stringify(error));
          });
}

以上为个人经验,希望能给大家一个参考。

Vue.js 相关文章推荐
vue在图片上传的时候压缩图片
Nov 18 Vue.js
详解vue 组件注册
Nov 20 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
vue+springboot实现登录验证码
May 27 Vue.js
Vue+Element UI实现概要小弹窗的全过程
May 30 Vue.js
Vue vee-validate插件的简单使用
Jun 22 Vue.js
Vue h函数的使用详解
Feb 18 Vue.js
vue+echarts实现多条折线图
Mar 21 Vue.js
vue 数字翻牌器动态加载数据
Apr 20 #Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 #Vue.js
vue封装数字翻牌器
Apr 20 #Vue.js
vue特效之翻牌动画
Apr 20 #Vue.js
解决vue中provide inject的响应式监听
Apr 19 #Vue.js
vue3种table表格选项个数的控制方法
Apr 14 #Vue.js
vue项目配置sass及引入外部scss文件
Apr 14 #Vue.js
You might like
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
详解php的socket通信
2015/08/11 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
Python中的匿名函数使用简介
2015/04/27 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
python基础梳理(一)(推荐)
2019/04/06 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
简单的Python调度器Schedule详解
2019/08/30 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
大韩航空官方网站:Korean Air
2017/10/25 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
民主生活会整改措施(党员)
2014/09/18 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
消防安全月活动总结
2015/05/08 职场文书
服装店员工管理制度
2015/08/07 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
python中mongodb包操作数据库
2022/04/19 Python