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自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
浅析VUE防抖与节流
Nov 24 Vue.js
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
Vue——前端生成二维码的示例
Dec 19 Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
Vue如何实现变量表达式选择器
Feb 18 Vue.js
Vue h函数的使用详解
Feb 18 Vue.js
vue elementUI批量上传文件
Apr 26 Vue.js
vue中data里面的数据相互使用方式
Jun 05 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
Python入门篇之函数
2014/10/20 Python
python使用range函数计算一组数和的方法
2015/05/07 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
对python生成业务报表的实例详解
2019/02/03 Python
python global关键字的用法详解
2019/09/05 Python
jupyter notebook实现显示行号
2020/04/13 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
你们项目是如何进行变更控制的
2015/08/26 面试题
旷课检讨书大全
2014/01/21 职场文书
手工社团活动方案
2014/02/17 职场文书
色戒观后感
2015/06/12 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
Python编写nmap扫描工具
2021/07/21 Python