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实现聊天页面的时候,聊天数据动态加到页面中,需要实现滚动条也自动滚动到底部.这时我找到网上有个插件 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 动态添加路由及生成菜单的方法示例
写后台管理系统,估计有不少人遇过这样的需求:根据后台数据动态添加路由和菜单. 为什么这么做呢?因为不同的用户有不同的权限,能访问的页面是不一样的. 在网上找了好多资料,终于想到了解决办法. 动态生成路由 利用 vue-router 的 addRoutes 方法可以动态添加路由. 先看一下官方介绍: router.addRoutes router.addRoutes(routes: Array<RouteConfig>) 动态添加更多的路由规则.参数必须是一个符合 routes 选项要求的数组.
-
使用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="
-
在Vue组件上动态添加和删除属性方法
如下所示: 在组件上添加属性 this.$set(this.data,"obj",value'); 删除属性this.$delete(this.data,"obj",value'); 以上这篇在Vue组件上动态添加和删除属性方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Vue.js动态添加.删除选题的实例代码 详解Vue 动态添加模板的几种方法
-
vue+ElementUI实现订单页动态添加产品数据效果实例代码
这两天学习了ElementUI基于vue2.0开发学习,这个知识点挺多的,而且很重要,所以,今天添加一点小笔记. 使用vue2.0(ElementUI基于vue2.0)+ElementUI(饿了么出品)实现的在订单页面动态添加产品的效果,并自动计算总价.代码直接保存为html文档,使用浏览器打开即可查看效果. 效果图: <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-U
-
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> &
-
vue中动态添加class类名的方法
vue 动态添加class类名,灵活得让你发狂,下面示例几个 <template> <div> <h2>动态添加类名</h2> <!-- 第一种方式:对象的形式 --> <!-- 第一个参数 类名, 第二个参数:boolean值 --> <!-- 对象的形式: 用花括号包裹起来,类名用引号, --> <!-- 优点: 以对象的形式可以写多个,用逗号分开 --> <p :class="{'p1'
随机推荐
- jstl 字符串处理函数
- 解决网页打开是乱码的问题
- Java 关键字 volatile 的理解与正确使用
- javascipt匹配单行和多行注释的正则表达式
- 在命令行下进行Oracle用户解锁的语句
- Python基于checksum计算文件是否相同的方法
- MySQL 数据库的临时文件究竟储存在哪里
- 解决phpmyadmin 乱码,支持gb2312和utf-8
- php header函数的常用http头设置
- jquery之ajaxfileupload异步上传插件(附工程代码)
- jsp中页面间传汉字参数转码的方法
- 基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
- javascript动态的改变IFrame的高度实现自动伸展
- 使用pjax实现无刷新更改页面url
- PHP学习mysql课件 高级篇第1/2页
- mysql 字段as详解及实例代码
- Python实现比较扑克牌大小程序代码示例
- 详解Android JNI的基本使用(CMake)
- Python Gitlab Api 使用方法
- Json.net日期格式化设置方式