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和s3captche实现一个水果名字的验证
Aug 14 Javascript
基于Jquery的标签智能验证实现代码
Dec 27 Javascript
js控制frameSet示例
Sep 10 Javascript
CSS+jQuery实现的一个放大缩小动画效果
Sep 24 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
Aug 05 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
Jun 28 Javascript
全选复选框JavaScript编写小结(附代码)
Aug 16 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
Aug 30 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
Jan 31 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
Apr 10 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
js的touch事件的实际引用
2014/10/13 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
使用Python中的cookielib模拟登录网站
2015/04/09 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
公司端午节活动方案
2014/02/04 职场文书
士力架广告词
2014/03/20 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
2015新学期开学寄语
2015/02/26 职场文书
房租涨价通知
2015/04/23 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript