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 25 Vue.js
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
vue的hash值原理也是table切换实例代码
Dec 14 Vue.js
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
vue-cropper组件实现图片切割上传
May 27 Vue.js
Vue实现跑马灯样式文字横向滚动
Nov 23 Vue.js
Vue.js中v-bind指令的用法介绍
Mar 13 Vue.js
vue中div禁止点击事件的实现
Apr 02 Vue.js
vue 给数组添加新对象并赋值
Apr 20 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 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 curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
php中文验证码实现示例分享
2014/01/12 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
Javascript 读后台cookie代码
2008/09/15 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
windows下安装python paramiko模块的代码
2013/02/10 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Sanic框架流式传输操作示例
2018/07/18 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
Python如何实现动态数组
2019/11/02 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
大学自我鉴定范文
2013/12/26 职场文书
合作意向书模板
2014/03/31 职场文书
农村党员对照检查材料
2014/09/24 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS