Vue form表单动态添加组件实战案例
今天我们来给大家介绍下在Vue开发中我们经常会碰到的一种需求场景,就是在form中我们需要动态的增加组件模块,效果如下:
这种效果实现其实就是对 v-for
指令的一种使用,组件
不是必须的,只是为了将这部门的代码我们单独的拎出来,便于查看,好了,话不多说,我们来看下具体怎么来实现。
案例效果的实现
1.创建组件
首先我们创建一个单独的组件,同时在 template
中定义我们的表单元素,此处使用的是 element UI
来实现效果。
2.import组件
我们需要在父组件中引入创建的组件,并通过 v-for
来实现动态处理的效果,关键代码如下
使用组件
在 data
中定义 edus
数组.
3.实现添加功能
要实现动态添加组件的功能,我们需要通过点击添加的按钮来增加数组 edus
中的元素,如下
let addEduView = function(){ this.edus.push({}) }
如此即可实现动态添加的功能。
4.实现移除功能
实现移除动态添加的组件,我们需要在组件中调用父组件中的方法。如下
父组件中定义移除的方法
let deleteEducation = function(index){ if (index !== 0) { this.edus.splice(index, 1) } }
子组件中回调
5.提交数据
当我们要提交表单数据的时候,怎么将动态添加的组件中的数据一并提交给后台服务呢,步骤如下:
提交数据的时候将 edus
数组中的数据和表单数据一块转换为 JSON
数据提交到后台。
6.清空组件
最后操作完成需要将动态添加的组件处理掉怎么实现呢?其实效果很简单,我们只需要清空 edus
数组即可
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Vue 动态添加路由及生成菜单的方法示例
写后台管理系统,估计有不少人遇过这样的需求:根据后台数据动态添加路由和菜单. 为什么这么做呢?因为不同的用户有不同的权限,能访问的页面是不一样的. 在网上找了好多资料,终于想到了解决办法. 动态生成路由 利用 vue-router 的 addRoutes 方法可以动态添加路由. 先看一下官方介绍: router.addRoutes router.addRoutes(routes: Array<RouteConfig>) 动态添加更多的路由规则.参数必须是一个符合 routes 选项要求的数组.
-
vue+ElementUI实现订单页动态添加产品数据效果实例代码
这两天学习了ElementUI基于vue2.0开发学习,这个知识点挺多的,而且很重要,所以,今天添加一点小笔记. 使用vue2.0(ElementUI基于vue2.0)+ElementUI(饿了么出品)实现的在订单页面动态添加产品的效果,并自动计算总价.代码直接保存为html文档,使用浏览器打开即可查看效果. 效果图: <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-U
-
在Vue组件上动态添加和删除属性方法
如下所示: 在组件上添加属性 this.$set(this.data,"obj",value'); 删除属性this.$delete(this.data,"obj",value'); 以上这篇在Vue组件上动态添加和删除属性方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Vue.js动态添加.删除选题的实例代码 详解Vue 动态添加模板的几种方法
-
vue中动态添加class类名的方法
vue 动态添加class类名,灵活得让你发狂,下面示例几个 <template> <div> <h2>动态添加类名</h2> <!-- 第一种方式:对象的形式 --> <!-- 第一个参数 类名, 第二个参数:boolean值 --> <!-- 对象的形式: 用花括号包裹起来,类名用引号, --> <!-- 优点: 以对象的形式可以写多个,用逗号分开 --> <p :class="{'p1'
-
vue实现动态添加数据滚动条自动滚动到底部的示例代码
在使用vue实现聊天页面的时候,聊天数据动态加到页面中,需要实现滚动条也自动滚动到底部.这时我找到网上有个插件 vue-chat-scroll https://www.npmjs.com/package/vue-chat-scroll 但是安装后发现是用不了的,报错信息如下: VM14383:27 [Vue warn]: Failed to resolve directive: chat-scroll (found in <Hello>) 这个一直找不到原因,可能是我vue的版本是2.2不支持
-
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动态添加、删除选题的实例代码
大家先看看页面效果吧,当当当当``````````````````````` 图中第二个选题是小颖点击了"新增选题"按钮,然后出来的,当你点击了"删除选项"或"删除选题"按钮,就会删除相应的选项和选题. html代码 <template> <div class="main-container"> <div class="form-horizontal"> <temp
-
vue.js 实现输入框动态添加功能
代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title>vue-demo</title> </head> <body> &
-
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
最近做vue 单页项目涉及到多角色用户权限问题,不同的角色用户拥有不同的功能权限, 不同的功能权限对应的不同的页面 git: https://github.com/pch1024/dynamicRouter 举个例子: 角色A =>功能1 =>功能2 =>功能3 角色B =>功能1 =>功能4 =>功能5 第1步 定义默认路由和动态路由 //动态路由(所有角色的都在这里,我们都做好组件页面了所以我们一定有这个,防君子不防小人) export const dynamicR
-
详解Vue 动态添加模板的几种方法
以下方法只适用于 Vue1.0 版本,推荐系数由高到低排列. 通常我们会在组件里的 template 属性定义模板,或者是在 *.vue 文件里的 template 标签里写模板.但是有时候会需要动态生成模板的需求,例如让用户自定义组件模板,或者设置组件的布局. 例如要做一个类 select 的组件,用户传入 options 数据,通过 value prop 获取选中值,最基本的原型如下. Vue.component('XSelect', { template: ` <div class="
随机推荐
- jsp实现Servlet文件下载的方法
- awk统计文件中某关键词出现次数的命令
- javascript:;与javascript:void(0)使用介绍
- iis8.5显示ASP的详细错误信息500 内部服务器错误解决方法
- 实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
- php下常用表单验证的正则表达式
- js实现数组冒泡排序、快速排序原理
- Python文件操作类操作实例详解
- Javascript实现网络监测的方法
- DataGridView控件显示行号的正确代码及分析
- JQuery中的html()、text()、val()区别示例介绍
- jquery实现标签支持图文排列带上下箭头按钮的选项卡
- jquery 取子节点及当前节点属性值
- C#编写COM组件的方法分析
- Apache增加最大连接数的方法
- MyBatis快速入门(简明浅析易懂)
- 跟老齐学Python之玩转字符串(3)
- Android 监听手机GPS打开状态实现代码
- 详解如何在vue项目中使用layui框架及采坑
- Linux CentOS 定时运行脚本配置的方法