vue 实现在同一界面实现组件的动态添加和删除功能

1.插入静态组件,将自己想要循环的组件显示在页面上,利用v-for进行循环操作,操作包括增删。

//所有要显示的子组件,写在一个li标签,有 v-for循环。
  <li v-for="(item, index) in questionList" v-bind:key="index">
          <el-row :gutter="20">
            <el-col offset="2" :span="4">
              <el-select
                size="small"
                v-model="chooseValue"
                multiple
                placeholdr="请选择试题类型"
                style="width:200px;margin-left:-40px"
              >
                <el-option :value="item.mineStatusValue" style="height:auto">
                  <el-tree
                    :data="data"
                    node-key="id"
                    :props="defaultProps"
                    @node-click="handleNodeClick"
                  ></el-tree>
                </el-option>
              </el-select>
            </el-col>
            <el-col offset="3" :span="3">
              <el-select
                style="margin-left:-30px"
                size="small"
                v-model="item.value"
                placeholder="请选择">
                <el-option
                  v-for="item in questionoptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                ></el-option>
              </el-select>
            </el-col>
            <el-col offset="2" :span="4">
              <el-input style="width:45px;" size="small" v-model="count">
                {{ item.count }}
              </el-input>
              <label>&nbsp;/0&nbsp;</label>
            </el-col>
            <el-col :span="6">
              <el-input style="width:45px;" size="small" v-model="sourcess">
                {{ item.sourcess }}
              </el-input>
              <label>&nbsp;&nbsp;</label>
              <!-- 在i标签设置删除按钮,运用splice函数。 -->
              <i class="el-icon-remove-outline"
                style="margin-left:20px"
                @click="questionList.splice(index, 1)"
              ></i>

2.增

在方法添加按钮,在点击添加按钮的时候将需要的参数传进数组,遍历数组,达到组件渲染。

//添加试题,组件循环显示
    addQuestion() {
      console.log("添加试题");
      this.questionList.unshift({
        mineStatusValue: this.mineStatusValue,
        questionoptions: this.questionoptions,
        count: this.count,
        sourcess: this.sourcess,
      });
    },

3.删

根据选中的组件,获取它的索引,根据下标把它删掉,更新数组,重选渲染组件。

注:删除的时候用到了splic函数,具体的使用可以自己了解。

<i class="el-icon-remove-outline"
  style="margin-left:20px"
  @click="questionList.splice(index, 1)">
</i>

4.效果

PS:在Vue组件上动态添加和删除属性方法

如下所示:

在组件上添加属性 this.$set(this.data,"obj",value');

删除属性this.$delete(this.data,"obj",value');

总结

到此这篇关于vue 实现在同一界面实现组件的动态添加和删除的文章就介绍到这了,更多相关vue 组件动态添加和删除内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在Vue组件上动态添加和删除属性方法

    如下所示: 在组件上添加属性 this.$set(this.data,"obj",value'); 删除属性this.$delete(this.data,"obj",value'); 以上这篇在Vue组件上动态添加和删除属性方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Vue.js动态添加.删除选题的实例代码 详解Vue 动态添加模板的几种方法

  • Vue中添加手机验证码组件功能操作方法

    什么是组件: 组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能.在有些情况下,组件也可以是原生HTML元素的形式,以is特性扩展. 写在前面: 今天要实现的功能是在 完善个人信息页面(vue)中添加手机验证码组件,当用户点击 手机选项时,弹出获取验证码组件,完成验证手机的功能: 这里考虑到功能的复用,我把当前弹出手机验证码的操作放在了单独的组件中: <template > <div>

  • Vue 仿QQ左滑删除组件功能

    前几天在做Vue项目开发的时候,因为之前别人写的代码有点小 bug,有人反应 IOS 上面的滑动点击有点问题,于是让我来帮忙解决,我看了看以前的代码实现比较繁琐,冗余,索性就直接自己重新写了一套,供大家参考,如有更好的方式,欢迎及时交流~ 我们先看看效果图吧,毕竟无图无真相啊~ 效果图 实现思路 具体实现思路如下: 布局方面我采用的是 rem + flex 布局,具体如何结构和样式可以参考我的代码,值得注意的是后面的删除按钮是我通过定位放在了每一行的最后,超出隐藏了而已 左滑和右滑是通过 tou

  • vue 组件中添加样式不生效的解决方法

    如何产生 在开发项目中遇到在组件中添加样式不生效的情况.具体场景如下 //// vue 组件 <template> <div class="box" data-v-33f8ed40></div> <template> //我用js在上面div标签中插入一个<p class='text'>text goes here</p> <script> export default { ... mounted(){

  • vue 实现在同一界面实现组件的动态添加和删除功能

    1.插入静态组件,将自己想要循环的组件显示在页面上,利用v-for进行循环操作,操作包括增删. //所有要显示的子组件,写在一个li标签,有 v-for循环.   <li v-for="(item, index) in questionList" v-bind:key="index">           <el-row :gutter="20">             <el-col offset="2

  • vue实现todolist功能、todolist组件拆分及todolist的删除功能

    •简单todolist功能的实现 用户点击提交按钮时,将input框的内容显示在下方的list中,同时清空list中内容. <body> <div id="root"> <div> <input v-model="inputValue"/> <button @click="submit">submit</button> </div> <ul> <

  • Vue 使用Props属性实现父子组件的动态传值详解

    如下所示: <!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.jsdelivr.net/npm/vue&quo

  • Vue 实现列表动态添加和删除的两种方法小结

    下面将介绍两种方式实现动态添加和删除列表 1.不使用组件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 测试实例 - vue实现列表增加和删除</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script&g

  • 使用vue.js实现checkbox的全选和多个的删除功能

    template代码: <template> <div class="hello"> <ul> <li v-for="(item, index) in proData"> <label for=""> <input type="checkbox" :value="index" v-model="selectArr">

  • Vue.js动态添加、删除选题的实例代码

    大家先看看页面效果吧,当当当当``````````````````````` 图中第二个选题是小颖点击了"新增选题"按钮,然后出来的,当你点击了"删除选项"或"删除选题"按钮,就会删除相应的选项和选题. html代码 <template> <div class="main-container"> <div class="form-horizontal"> <temp

  • Vue实现动态添加或者删除对象和对象数组的操作方法

    添加核心代码如下: 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, }); 删除核心代码如下: /*遍历数组,然

  • 微信小程序动态添加和删除组件的现实

    一.基本思路 1.通过改变数组长度动态增删组件 <block wx:for="{{数组}}"> 组件 </block> 2.点击添加按钮,增加数组的成员,组件相应增加 点击删除按钮,减少数组的成员,组件相应删除 二.示例 wxml: <view> <button bindtap='onTapAdd'>添加input组件</button> <button bindtap='onTapDel'>删除Input组件<

  • vue 实现列表跳转至详情且能添加至购物车功能

    目录 效果概述: 具体效果: 实现后效果图: 大致代码思路 main.js 代码 移动端rem适配代码 解决跨域问题,在vue.config.js里添加代码 实现路由跳转页代码 app根组件代码 效果列表页代码 详情页代码 购物车页面代码 vuex页面代码 效果概述: 列表页面显示数据,点击跳转到对应的详情页,详情页可以添加并跳转到购物车,购物车具有常见功能. 具体效果: 1.所有页面根据效果图100%还原.2.列表页面通过axios请求拿到数据并显示.3.跳转到详情页时,显示对应列表的数据.4

随机推荐