Vue.js如何利用v-for循環(huán)生成動態(tài)標(biāo)簽
前言
使用v-for可以用于動態(tài)生成html標(biāo)簽。其實就是對于vue中屬性是對象或者數(shù)組進(jìn)行遍歷生成新的標(biāo)簽。
v-for就像java中的for循環(huán)一樣,迭代需要的所有元素。
大多數(shù)情況是以一個數(shù)組嵌套多個對象的數(shù)據(jù)進(jìn)行v-for循環(huán)
一、當(dāng)寫入數(shù)據(jù)為數(shù)組時
如果循環(huán)遍歷得到的value值是一個對象,需要使用里面的值可以用 對象名.key 來調(diào)用key對應(yīng)的value值
v-for寫入數(shù)組的格式: arrays = [ ] v-for = " (value,index) in arrays " //()內(nèi)可以是一個參數(shù),多個參數(shù)用,隔開 //其中value為arrays遍歷的值。 index為arrays遍歷的索引,從0開始 value,index只是變量的名字,可以隨意命名,對應(yīng)的是第一個參數(shù)和第二個參數(shù),順序決定了該變量具體的值
代碼實例: 生成一個表格標(biāo)簽,動態(tài)生成數(shù)據(jù)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/vue.js"></script> </head> <body> <div id="app"> <table border="1"> <tr> <th>編號</th> <th>姓名</th> </tr> <tr v-for="(value,index) in arrays"> <td>{{value.id}}</td> <td>{{value.name}}</td> </tr> </table> </div> <script> var app = new Vue({ el:"#app", data:{ arrays:[ { "id":"A1", "name":"wa1" }, { "id":"A2", "name":"wa2" }, { "id":"A3", "name":"wa3" } ] }, methods:{ } }); </script> </body> </html>
頁面效果: arrays數(shù)組里的數(shù)據(jù)可以是從數(shù)據(jù)庫里讀取出來的json文件
二、當(dāng)寫入數(shù)據(jù)為對象時
當(dāng)需要遍歷的數(shù)據(jù)是對象的時候,這個時候在第二參數(shù)中不再是索引,而是key值 。
json對象一般格式為: {
"key":"value",
"key2":"value2"
}
v-for寫入對象的格式: arrays = { } v-for = " (value,key ,index) in arrays " 在()傳入的參數(shù)中,第一個參數(shù)為對象的值,第二個參數(shù)為對象的key,第三個參數(shù)為對象的索引
代碼示例: 顯示我的個人信息
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/vue.js"></script> </head> <body> <div id="app"> <table border="1"> <caption>我的個人信息</caption> <tr v-for="(value,key,index) in obj"> <td>{{key}}</td> <td>{{value}}</td> </tr> </table> </div> <script> var app = new Vue({ el:"#app", data:{ obj:{ "id":"A1", "name":"zhangsan", "sex":"男", "age":20 } }, methods:{ } }); </script> </body> </html>
頁面效果:
三、作用于標(biāo)簽屬性和事件
上述中 v-for = " (value,key ,index) in arrays " 內(nèi)的() 參數(shù)可以傳入到標(biāo)簽屬性值和事件中 。如果需要傳入的話屬性和事件需要按照Vue綁定 ,如: 屬性使用:屬性名 事件使用 @事件名
代碼示例:我們對其第一個例子的表格根據(jù)class的不同進(jìn)行上色
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/vue.js"></script> <style> .A0{ color:red; } .A1{ color:blue; } .A2{ color:orange; } </style> </head> <body> <div id="app"> <table border="1"> <tr> <th>編號</th> <th>姓名</th> </tr> <tr v-for="(value,index) in arrays" :class="'A'+index"> <td>{{value.id}}</td> <td>{{value.name}}</td> </tr> </table> </div> <script> var app = new Vue({ el:"#app", data:{ arrays:[ { "id":"A1", "name":"wa1" }, { "id":"A2", "name":"wa2" }, { "id":"A3", "name":"wa3" } ] }, methods:{ } }); </script> </body> </html>
頁面效果:
當(dāng)然也可以傳入到@事件的函數(shù)參數(shù)中。
總結(jié)
到此這篇關(guān)于Vue.js如何利用v-for循環(huán)生成動態(tài)標(biāo)簽的文章就介紹到這了,更多相關(guān)Vue.js v-for循環(huán)生成動態(tài)標(biāo)簽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Vite不能使用require問題的解決方法
在vue2中我們通常會在模板中通過三目運(yùn)算符和require來實現(xiàn)動態(tài)圖片,下面這篇文章主要給大家介紹了關(guān)于Vite不能使用require問題的解決方法,需要的朋友可以參考下2022-10-10vue-quill-editor富文本編輯器上傳視頻功能詳解
需求需要實現(xiàn)富文本的功能,同時富文本中還可以上傳視頻和圖片,選來選去最后決定了用這個富文本編輯器,下面這篇文章主要給大家介紹了關(guān)于vue-quill-editor富文本編輯器上傳視頻功能的相關(guān)資料,需要的朋友可以參考下2023-05-05使用Element-UI的el-tabs組件,瀏覽器卡住了的問題及解決
這篇文章主要介紹了使用Element-UI的el-tabs組件,瀏覽器卡住了的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08vue 封裝導(dǎo)出Excel數(shù)據(jù)的公共函數(shù)的方法
本文主要介紹了vue 封裝導(dǎo)出Excel數(shù)據(jù)的公共函數(shù),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Ant Design Vue 添加區(qū)分中英文的長度校驗功能
這篇文章主要介紹了Ant Design Vue 添加區(qū)分中英文的長度校驗功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下功能,2020-01-01Vue?ELement?Table技巧表格業(yè)務(wù)需求實戰(zhàn)示例
這篇文章主要介紹了Vue?ELement?Table技巧表格業(yè)務(wù)需求實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Vue中.vue文件比main.js先執(zhí)行的問題及解決
這篇文章主要介紹了Vue中.vue文件比main.js先執(zhí)行的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12