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 相关文章推荐
AutoSave/自动存储功能实现
Mar 24 Javascript
js控制div及网页相关属性的代码
Dec 19 Javascript
javascript模拟的Ping效果代码 (Web Ping)
Mar 13 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
Apr 28 Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 Javascript
Javascript无参数和有参数类继承问题解决方法
Mar 02 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
终于实现了!精彩的jquery弹幕效果
Jul 18 Javascript
详解JS函数stack size计算方法
Jun 18 Javascript
使用pm2部署node生产环境的方法步骤
Mar 09 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
Aug 17 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异步执行的详解
2013/06/03 PHP
php引用传值实例详解学习
2013/11/06 PHP
php绘制一个矩形的方法
2015/01/24 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
python random从集合中随机选择元素的方法
2019/01/23 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
python开启debug模式的方法
2019/06/27 Python
简单了解django索引的相关知识
2019/07/17 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
前台接待岗位职责
2013/12/03 职场文书
公务员综合考察材料
2014/02/01 职场文书
房地产广告策划方案
2014/05/15 职场文书
计生专干事迹
2014/05/28 职场文书
大学生毕业评语
2014/12/31 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
python playwright之元素定位示例详解
2022/07/23 Python