當我們需要一個表單,通常會把表單的結構寫成HTML,但是這樣只適用于靜態表單。如果想要動態地更新表單內容,而且表單數量很多,那么使用傳統的HTML形式會變得很麻煩。Vue提供了一個很好的解決方案。
<div id="app"> <form> <label v-for="(item, index) in items" :key="index"> <span>{{ item.label }}</span> <input :type="item.type" :placeholder="item.placeholder" v-model="item.value"> </label> <button type="submit">提交</button> </form> </div>
首先,我們的表單內容是通過一個數組 items 來循環出來的,每個元素都包含了標簽名稱、輸入類型、占位符和初始值。通過 v-for 指令來循環 items 數組,通過 :key 給每個元素分配一個唯一的標識。
在 label 元素內部,我們使用{{ item.label }}來動態綁定元素標簽名稱,而標簽的輸入類型和占位符則是通過 :type 和 :placeholder 屬性來綁定的。此外,標簽的值是通過 v-model 來與 items 數組中的初始值相綁定的,這樣就可以很方便地動態更新表單數據了。
var app = new Vue({ el: "#app", data: { items: [ { label: "用戶名", type: "text", placeholder: "請輸入用戶名", value: "" }, { label: "密碼", type: "password", placeholder: "請輸入密碼", value: "" }, { label: "郵箱", type: "email", placeholder: "請輸入郵箱", value: "" } ] } });
在 Vue 實例中,我們定義了一個名為 items 的數組,它與 form 表單中循環出來的元素是一一對應的。一個items數組元素包含了一個標簽名稱、輸入類型、占位符和 初始值。這里的value是綁定到< input>標簽的 v-model 指令上,同時也是表單值的默認值。
通過上面的代碼,我們可以看到,使用Vue來處理動態表單數據是非常方便的,可以通過循環模板來合并表單HTML,再通過綁定數據來自動更新表單內容,從而達到一種便捷的動態化操作方式。
下一篇vue數字穿梭框