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 相关文章推荐
document.all还是document.getElementsByName?
Jul 21 Javascript
ie8下修改input的type属性报错的解决方法
Sep 16 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
Nov 16 Javascript
javascript中parseInt()函数的定义和用法分析
Dec 20 Javascript
javascript实现日期按月份加减
May 15 Javascript
Angularjs---项目搭建图文教程
Jul 08 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
JavaScript Canvas绘制圆形时钟效果
Aug 20 Javascript
信息滚动效果的实例讲解
Sep 18 Javascript
vue实现点击展开点击收起效果
Apr 27 Javascript
js+canvas实现五子棋小游戏
Aug 02 Javascript
解决vue-loader加载不上的问题
Oct 21 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判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
jQuery Ajax使用 全解析
2010/12/15 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
JS验证字符串功能
2017/02/22 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
线程和进程的区别及Python代码实例
2015/02/04 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
python 实现识别图片上的数字
2019/07/30 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
提高python代码运行效率的一些建议
2020/09/29 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
人事专员职责
2014/02/22 职场文书
现场施工员岗位职责
2014/03/10 职场文书
一般党员对照检查材料
2014/09/24 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
一行Python命令实现批量加水印
2022/04/07 Python
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python