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中暂停功能的实现代码
Mar 04 Javascript
JS 文字符串转换unicode编码函数
May 30 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
Dec 15 Javascript
JQuery设置和去除disabled属性的5种方法总结
May 16 Javascript
js charAt的使用示例
Feb 18 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
Sep 02 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
Sep 30 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
Jun 22 Javascript
深入浅析JavaScript中的3DES
Aug 24 Javascript
bootstrap组件之按钮式下拉菜单小结
Jan 19 Javascript
easyui简介_动力节点Java学院整理
Jul 14 Javascript
Vue v2.5 调整和更新不完全问题
Oct 24 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
默默小谈PHP&MYSQL分页原理及实现
2007/01/02 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
javascript调试说明
2010/06/07 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
django foreignkey(外键)的实现
2019/07/29 Python
python修改文件内容的3种方法详解
2019/11/15 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
Python连接字符串过程详解
2020/01/06 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
机修工岗位职责
2013/11/24 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs