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客户端脚本的设计和应用
Aug 21 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
使用jQuery清空file文件域的解决方案
Apr 12 Javascript
JavaScript通过RegExp实现客户端验证处理程序
May 07 Javascript
用JQuery实现全选与取消的两种简单方法
Feb 22 Javascript
Boostrap模态窗口的学习小结
Mar 28 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
May 23 Javascript
JavaScript简单获取页面图片原始尺寸的方法
Jun 21 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
vue自定义指令实现方法详解
Feb 11 Javascript
Javascript如何实现双指控制图片功能
Feb 25 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
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
PHP 裁剪图片
2021/03/09 PHP
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
js跳转页面方法总结
2014/01/29 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python实现八大排序算法
2016/08/13 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
python实现俄罗斯方块
2018/06/26 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
python的re模块使用方法详解
2019/07/26 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
Python如何读取、写入JSON数据
2020/07/28 Python
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
MYSQL基础面试题
2012/05/13 面试题
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
2014年财务科工作总结
2014/11/11 职场文书
劳模事迹材料范文
2014/12/24 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
2015年父亲节寄语
2015/03/23 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python