Vue的表單循環(huán)是非常有用的,可以簡(jiǎn)化表單的使用和重復(fù)代碼的書(shū)寫(xiě)。使用v-for指令可以方便地循環(huán)渲染表單元素:
<template> <form> <div v-for="(item, index) in itemList" :key="index"> <label :for="'input' + index">{{ item.label }}:</label> <input :type="item.type" :id="'input' + index" :name="item.name"> </div> </form> </template> <script> export default { data() { return { itemList: [ { label: '用戶名', type: 'text', name: 'username' }, { label: '密碼', type: 'password', name: 'password' }, { label: '郵箱', type: 'email', name: 'email' } ] } } } </script>
在上面的代碼中,我們使用了一個(gè)數(shù)組itemList來(lái)存儲(chǔ)表單元素的相關(guān)信息。然后使用v-for指令循環(huán)渲染表單元素,可以看到我們動(dòng)態(tài)生成了三個(gè)label和input標(biāo)簽,每個(gè)標(biāo)簽的id和name屬性都是通過(guò)item對(duì)象的name屬性動(dòng)態(tài)生成的。
如果我們要使用提交按鈕,也可以通過(guò)類(lèi)似的方式來(lái)生成:
<template> <form> <div v-for="(item, index) in itemList" :key="index"> <label :for="'input' + index">{{ item.label }}:</label> <input :type="item.type" :id="'input' + index" :name="item.name"> </div> <button type="button" @click="submitForm">提交</button> </form> </template> <script> export default { data() { return { itemList: [ { label: '用戶名', type: 'text', name: 'username' }, { label: '密碼', type: 'password', name: 'password' }, { label: '郵箱', type: 'email', name: 'email' } ] } }, methods: { submitForm() { // 處理表單提交操作 } } } </script>
通過(guò)定義一個(gè)submitForm方法來(lái)處理表單提交操作,我們可以在按鈕的@click事件上綁定submitForm方法。在實(shí)際開(kāi)發(fā)中,我們還可以通過(guò)v-model指令來(lái)實(shí)現(xiàn)表單數(shù)據(jù)的雙向綁定,這里就不再贅述。