Vue form表單動態(tài)添加組件實戰(zhàn)案例
今天我們來給大家介紹下在Vue開發(fā)中我們經(jīng)常會碰到的一種需求場景,就是在form中我們需要動態(tài)的增加組件模塊,效果如下:

這種效果實現(xiàn)其實就是對 v-for 指令的一種使用,組件不是必須的,只是為了將這部門的代碼我們單獨的拎出來,便于查看,好了,話不多說,我們來看下具體怎么來實現(xiàn)。
案例效果的實現(xiàn)
1.創(chuàng)建組件
首先我們創(chuàng)建一個單獨的組件,同時在 template 中定義我們的表單元素,此處使用的是 element UI 來實現(xiàn)效果。

2.import組件
我們需要在父組件中引入創(chuàng)建的組件,并通過 v-for 來實現(xiàn)動態(tài)處理的效果,關(guān)鍵代碼如下

使用組件

在 data 中定義 edus 數(shù)組.

3.實現(xiàn)添加功能
要實現(xiàn)動態(tài)添加組件的功能,我們需要通過點擊添加的按鈕來增加數(shù)組 edus 中的元素,如下

let addEduView = function(){
this.edus.push({})
}
如此即可實現(xiàn)動態(tài)添加的功能。
4.實現(xiàn)移除功能
實現(xiàn)移除動態(tài)添加的組件,我們需要在組件中調(diào)用父組件中的方法。如下
父組件中定義移除的方法
let deleteEducation = function(index){
if (index !== 0) {
this.edus.splice(index, 1)
}
}

子組件中回調(diào)

5.提交數(shù)據(jù)
當(dāng)我們要提交表單數(shù)據(jù)的時候,怎么將動態(tài)添加的組件中的數(shù)據(jù)一并提交給后臺服務(wù)呢,步驟如下:


提交數(shù)據(jù)的時候?qū)?edus 數(shù)組中的數(shù)據(jù)和表單數(shù)據(jù)一塊轉(zhuǎn)換為 JSON 數(shù)據(jù)提交到后臺。

6.清空組件
最后操作完成需要將動態(tài)添加的組件處理掉怎么實現(xiàn)呢?其實效果很簡單,我們只需要清空 edus 數(shù)組即可

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Element實現(xiàn)表格分頁數(shù)據(jù)選擇+全選所有完善批量操作
這篇文章主要介紹了Element實現(xiàn)表格分頁數(shù)據(jù)選擇+全選所有完善批量操作,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06

