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 相关文章推荐
jQuery根据纬度经度查看地图处理程序
May 08 Javascript
禁止选中文字兼容IE、Chrome、FF等
Sep 04 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
Jan 09 Javascript
jQuery避免$符和其他JS库冲突的方法对比
Feb 20 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
EasyUI中datagrid在ie下reload失败解决方案
Mar 09 Javascript
Node.js开发者必须了解的4个JS要点
Feb 21 Javascript
Angularjs处理页面闪烁的解决方法
Mar 09 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
Jul 17 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
Oct 31 Javascript
Vue中keep-alive组件的深入理解
Aug 23 Javascript
Node.js文本文件BOM头的去除方法
Nov 22 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使用GeoIP库实例
2014/06/27 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
简洁的十分钟Python入门教程
2015/04/03 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
Python验证码截取识别代码实例
2020/05/16 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
《荷花》教学反思
2014/04/16 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
2014年检验科工作总结
2014/11/22 职场文书
银行招聘自荐信
2015/03/06 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
论语读书笔记
2015/06/26 职场文书
2016高考寄语集锦
2015/12/04 职场文书
《山中访友》教学反思
2016/02/24 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android