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 相关文章推荐
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
vue form表单post请求结合Servlet实现文件上传功能
Jan 22 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 Vue.js
Vue实现跑马灯样式文字横向滚动
Nov 23 Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 Vue.js
vue如何清除浏览器历史栈
May 25 Vue.js
VUE递归树形实现多级列表
Jul 15 Vue.js
Vue router配置与使用分析讲解
Dec 24 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数据对象映射模式实例分析
2019/03/29 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
简单的网页广告特效实例
2017/08/19 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
理解Python中的类与实例
2015/04/27 Python
Django卸载之后重新安装的方法
2017/03/15 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
pytorch 数据集图片显示方法
2018/07/26 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
最新奶茶店创业计划书范文
2014/02/08 职场文书
海洋科学专业求职信
2014/08/10 职场文书
创卫工作总结2015
2015/04/22 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
2015年采购员工作总结
2015/04/27 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP
Vue2.0搭建脚手架
2022/03/13 Vue.js