Vue form表单动态添加组件实战案例


Posted in Javascript onSeptember 02, 2019

今天我们来给大家介绍下在Vue开发中我们经常会碰到的一种需求场景,就是在form中我们需要动态的增加组件模块,效果如下:

Vue form表单动态添加组件实战案例

这种效果实现其实就是对 v-for 指令的一种使用,组件不是必须的,只是为了将这部门的代码我们单独的拎出来,便于查看,好了,话不多说,我们来看下具体怎么来实现。

案例效果的实现

1.创建组件

首先我们创建一个单独的组件,同时在 template 中定义我们的表单元素,此处使用的是 element UI 来实现效果。

Vue form表单动态添加组件实战案例

2.import组件

我们需要在父组件中引入创建的组件,并通过 v-for 来实现动态处理的效果,关键代码如下

Vue form表单动态添加组件实战案例

使用组件

Vue form表单动态添加组件实战案例

data 中定义 edus 数组.

Vue form表单动态添加组件实战案例

3.实现添加功能

要实现动态添加组件的功能,我们需要通过点击添加的按钮来增加数组 edus 中的元素,如下

Vue form表单动态添加组件实战案例

let addEduView = function(){
 this.edus.push({})
}

如此即可实现动态添加的功能。

4.实现移除功能

实现移除动态添加的组件,我们需要在组件中调用父组件中的方法。如下

父组件中定义移除的方法

let deleteEducation = function(index){
 if (index !== 0) {
  this.edus.splice(index, 1)
 }
}

Vue form表单动态添加组件实战案例

子组件中回调

Vue form表单动态添加组件实战案例

5.提交数据

当我们要提交表单数据的时候,怎么将动态添加的组件中的数据一并提交给后台服务呢,步骤如下:

Vue form表单动态添加组件实战案例

Vue form表单动态添加组件实战案例

提交数据的时候将 edus 数组中的数据和表单数据一块转换为 JSON 数据提交到后台。

Vue form表单动态添加组件实战案例

6.清空组件

最后操作完成需要将动态添加的组件处理掉怎么实现呢?其实效果很简单,我们只需要清空 edus 数组即可

Vue form表单动态添加组件实战案例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript Array.sort() 跨浏览器下需要考虑的问题
Dec 07 Javascript
Javascript 垃圾收集机制介绍理解
May 14 Javascript
浅谈javascript对象模型和function对象
Dec 26 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
May 17 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
Oct 21 Javascript
微信小程序 二维码canvas绘制实例详解
Jan 06 Javascript
javascript实现日期三级联动下拉框选择菜单
Dec 03 Javascript
基于AngularJS实现的工资计算器实例
Jun 16 Javascript
vue mint-ui学习笔记之picker的使用
Oct 11 Javascript
JS生成随机打乱数组的方法示例
Dec 23 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 Javascript
小程序和web画三角形实现解析
Sep 02 #Javascript
vue-cli随机生成port源码的方法
Sep 02 #Javascript
微信小程序 云开发模糊查询实现解析
Sep 02 #Javascript
layui 数据表格 点击分页按钮 监听事件的实例
Sep 02 #Javascript
js中比较两个对象是否相同的方法示例
Sep 02 #Javascript
浅谈vue限制文本框输入数字的正确姿势
Sep 02 #Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
Sep 02 #Javascript
You might like
下载文件的点击数回填
2006/10/09 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
Laravel实现表单提交
2017/05/07 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
ExtJS 入门
2010/10/29 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
js获取Get值的方法
2016/09/29 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
python实现批量监控网站
2016/09/09 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
Python实现京东秒杀功能代码
2019/05/16 Python
python super的使用方法及实例详解
2019/09/25 Python
基于python3生成标签云代码解析
2020/02/18 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
婚礼司仪主持词
2014/03/14 职场文书
个人剖析材料范文
2014/09/30 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
公司财务部岗位职责
2015/04/14 职场文书
担保书怎么写 ?
2019/04/22 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript