本文实例讲述了vue.js基于v-for实现批量渲染 Json数组对象列表数据。分享给大家供大家参考,具体如下:
Vuejs的出现减轻了对DOM的直接操作,同时它提供的 v-for 渲染列表数据也给我们提供了很大的方便。即使是复杂的 Json数组对象,也可以使用 多层嵌套的 v-for 实现,格式如下:
<div v-for="(item,index) in items"> <div v-for="(list,index) in item.lists"></div> <div>
假设当前的HTML,VUE 文本格式如下:
<div id="app" class="columns"> <div class="column"> <div class="card"> <div class="card-content"> <div id="data" class="columns is-multiline "> <div class="column is-half"> <div class="media"> <div class="media-content"> <p class="has-text-weight-bold">职业知识</p> <p class="help">生涯树提供的职业数据框架,可以从职业能力、知识、技能、活动、内容方面进行探索和规划</p> </div> </div> <div class="message-body"> <div class="field buttons"> <a>兴趣:</a> <span>常见的任务和环境的偏好</span> </div> </div> </div> </div> </div> </div> </div> </div>
需要渲染的JSON数组对象格式如下:
var allData = [ { "id":"职业知识", "name":"关于各行业职业信息的分析,主要因素分析", "lists":[ { "title":"兴趣", "describe":"常见的任务和环境的偏好" }, { "title":"价值观", "describe":"个人满意度的关键方面" }, { "title":"技能", "describe":"学习发展、组织协作和资源管理的发达能力" } ] }, { "id":"职业扩展", "name":"提供除本职业之外的扩展知识等各个方面", "lists":[ { "title":"活动", "describe":"常见的工作行为类型" }, { "title":"内容", "describe":"工作性质的物理和社会因素" }, { "title":"能力", "describe":"个人基本持久属性" } ] } ];
使用VUE操作渲染列表,先对文本分配对应的字段值,格式如下:
<div class="column is-half" v-for="(item, index) in items"> <div class="media"> <div class="media-content"> <p class="has-text-weight-bold">{{ item.id }}</p> <p class="help">{{ item.name }}</p> </div> </div> <div class="message-body" v-for="(list, index) in item.lists"> <div class="field buttons" > <a>{{ list.title}}:</a> <span>{{ list.describe}}</span> </div> </div> </div>
JS操作,引入 vuejs,创建实例渲染到指定对象(引入链接请移步到官网 https://cn.vuejs.org/)
<script src="/UploadFiles/2021-04-02/vue.js">var vm = new Vue({ el: '#app', data: { items:allData }})VUE渲染列表数据完成,就是这么简单。接下来看看 原生JS 是如何渲染列表数据的:
原生JS操作数组取值:循环。使用 for in 直接操作对象,或者 for循环直接取值,格式如下:
for(var key in values){};for(var i=0;i<values.length;i++){},根据情况取任意一种方式,以为演示两种方式的使用
function Id(id) { return document.getElementById(id); //获取模块的ID } function getData(allData) { var data = Id("data"); var html=''; for(var i in allData){ //外层循环获取标志信息 var list = ''; for(var j=0;j<allData[i].lists.length;j++){ //内层循环渲染详细列表项 list+='<div class="message-body">'+ '<div class="field buttons">'+ '<a class=" ">'+allData[i].lists[j].title+':</a>'+ '<span>'+allData[i].lists[j].describe+'</span>'+ '</div>'+ '</div>'; } html+='<div class="column is-half">'+ '<div class="media">'+ '<div class="media-content">'+ '<p class="has-text-weight-bold">'+allData[i].id+'</p>'+ '<p class="help">'+allData[i].name+'</p>'+ '</div>'+ '</div>'+list+ //将内层渲染好的列表项模块添加到外层大模块中 '</div>'; } data.innerHTML = html; //像指定的ID模块追加内容 } //调用渲染数据方法并传递参数 JSON数组对象 getData(allData);最终,VUE ,原生JS 渲染出来的列表数据效果均如下:
希望本文所述对大家vue.js程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]