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快速解决input中placeholder值在ie中无法支持的问题
Jan 02 Javascript
网页右下角弹出窗体实现代码
Jun 05 Javascript
AngularJS基础 ng-focus 指令简单示例
Aug 01 Javascript
jquery实现网页定位导航
Aug 23 Javascript
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
一文了解Vue中的nextTick
May 06 Javascript
Async/Await替代Promise的6个理由
Jun 15 Javascript
JavaScript箭头函数中的this详解
Jun 19 Javascript
vue计算属性无法监听到数组内部变化的解决方案
Nov 06 Javascript
原生JS实现飞机大战小游戏
Jun 09 Javascript
Javascript的promise,async和await的区别详解
Mar 24 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中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
python3实现名片管理系统
2020/11/29 Python
在python 中实现运行多条shell命令
2019/01/07 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
python生成随机红包的实例写法
2019/09/02 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
大二学期个人自我评价
2014/01/13 职场文书
副董事长岗位职责
2014/04/02 职场文书
写得不错的求职信范文
2014/07/11 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书