Vue实现动态添加或者删除对象和对象数组的操作方法


Posted in Javascript onSeptember 21, 2018

添加核心代码如下:

this.data.push({
      type: [{
       value: '选项1',
       label: 'in'
      },
       {
        value: '选项3',
        label: 'out'
       }],
      value:[{
       value: '选项1',
       label: 'CSV'
      },
       {
        value: '选项3',
        label: 'TSV'
       }],
      parameter:'',
      default:'',
      description:'',
      isDelete:false,
     });

删除核心代码如下:

/*遍历数组,然后根据选中的状态获取对应的下标,然后进行删除*/
     for (let i = 0;i<this.data.length;i++){
      let obj = this.data[i];
      if (obj.isDelete){
       this.data.splice(i,1);
       i--
      }
     }

全部代码如下:

<template>
  <div>
   ============================32、在Vue项目中实现动态添加或者删除对象和对象数组============================
   <div>
    <el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
    <el-button type="primary" icon="el-icon-delete" @click="deleteItem"></el-button>
    <el-row :gutter="50"  v-for="(item,index) in data" :key="index">
     <!--Type-->
     <el-col :span="4">
      <div class="grid-content bg-purple">
       <el-row >
        <el-col :span="24">
         <el-select v-model="value" placeholder="请选择" size="mini">
          <el-option
           v-for="obj in item.type"
           :key="obj.value"
           :label="obj.label"
           :value="obj.value">
          </el-option>
         </el-select>
        </el-col>
       </el-row >
      </div>
     </el-col>
     <!--value-->
     <el-col :span="4">
      <div class="grid-content bg-purple-light">
       <el-row >
        <el-col :span="24">
         <el-select v-model="value" placeholder="请选择" size="mini">
          <el-option
           v-for="obj in item.value"
           :key="obj.value"
           :label="obj.label"
           :value="obj.value">
          </el-option>
         </el-select>
        </el-col>
       </el-row >
      </div>
     </el-col>
     <!--Parameter-->
     <el-col :span="4">
      <div class="grid-content bg-purple">
       <el-input
        size="mini"
        placeholder="请输入内容"
        v-model="item.parameter"
        clearable>
       </el-input>
      </div>
     </el-col>
     <!--Default-->
     <el-col :span="4">
      <div class="grid-content bg-purple-light">
       <el-input
        size="mini"
        placeholder="请输入内容"
        v-model="item.default"
        clearable>
       </el-input>
      </div>
     </el-col>
     <!--Description-->
     <el-col :span="4">
      <div class="grid-content bg-purple">
       <el-input
        size="mini"
        placeholder="请输入内容"
        v-model="item.description"
        clearable>
       </el-input>
      </div>
     </el-col>
     <!--Del-->
     <el-col :span="4">
      <div class="grid-content bg-purple-light " id="checkboxSpacingDiv">
       <!-- `checked` 为 true 或 false -->
       <el-checkbox v-model="item.isDelete" size="medium"></el-checkbox>
      </div>
     </el-col>
    </el-row>
   </div>
  </div>
</template>
<script>
  export default {
    name: "VueArrays_32",
   data(){
     return {
      data:[
       {
        type: [{
         value: '选项1',
         label: 'in'
        },
         {
          value: '选项3',
          label: 'out'
         }],
        value:[{
         value: '选项1',
         label: 'CSV'
        },
         {
          value: '选项3',
          label: 'TSV'
         }],
        parameter:'',
        default:'',
        description:'',
        isDelete:false,
       },
      ],
     }
   },
   methods:{
    add(){
     this.data.push({
      type: [{
       value: '选项1',
       label: 'in'
      },
       {
        value: '选项3',
        label: 'out'
       }],
      value:[{
       value: '选项1',
       label: 'CSV'
      },
       {
        value: '选项3',
        label: 'TSV'
       }],
      parameter:'',
      default:'',
      description:'',
      isDelete:false,
     });
    },
    deleteItem(){
     /*遍历数组,然后根据选中的状态获取对应的下标,然后进行删除*/
     for (let i = 0;i<this.data.length;i++){
      let obj = this.data[i];
      if (obj.isDelete){
       this.data.splice(i,1);
       i--
      }
     }
    }
   }
  }
</script>
<style scoped>
</style>

 效果图如下:

Vue实现动态添加或者删除对象和对象数组的操作方法

总结

以上所述是小编给大家介绍的Vue实现动态添加或者删除对象和对象数组的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript简单性能问题及学习笔记
Feb 04 Javascript
jquery退出each循环的写法
Feb 26 Javascript
javascript作用域和闭包使用详解
Apr 25 Javascript
学习JavaScript编程语言的8张思维导图分享
Mar 27 Javascript
JavaScript脚本判断蜘蛛来源的方法
Sep 22 Javascript
JS实现仿QQ效果的三级竖向菜单
Sep 25 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
Oct 08 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
May 28 Javascript
Angular 表单控件示例代码
Jun 26 Javascript
JS代码实现电脑配置检测功能
Mar 21 Javascript
echarts大屏字体自适应的方法步骤
Jul 12 Javascript
Js数组扁平化实现方法代码总汇
Nov 11 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
Sep 21 #Javascript
React实现全局组件的Toast轻提示效果
Sep 21 #Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
Sep 21 #Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 #Javascript
解决vue keep-alive 数据更新的问题
Sep 21 #Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 #Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 #Javascript
You might like
php采集速度探究总结(原创)
2008/04/18 PHP
基于empty函数的判断详解
2013/06/17 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python fileinput模块使用实例
2015/06/03 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python列表使用实现名字管理系统
2019/01/30 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
详解python metaclass(元类)
2020/08/13 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
教师自荐信
2013/12/10 职场文书
运动会广播稿400字
2014/01/25 职场文书
单位租房协议书范本
2014/12/04 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
党员反邪教心得体会
2016/01/15 职场文书
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS