本文实例讲述了vue.js基于v-for实现批量渲染 json数组对象列表数据。分享给大家供大家参考,具体如下:
vuejs的出现减轻了对dom的直接操作,同时它提供的 v-for 渲染列表数据也给我们提供了很大的方便。即使是复杂的 json数组对象,也可以使用 多层嵌套的 v-for 实现,格式如下:
假设当前的html,vue 文本格式如下:
职业知识
生涯树提供的职业数据框架,可以从职业能力、知识、技能、活动、内容方面进行探索和规划
兴趣:
常见的任务和环境的偏好
需要渲染的json数组对象格式如下:
var alldata = [
{
"id":"职业知识",
"name":"关于各行业职业信息的分析,主要因素分析",
"lists":[
{
"title":"兴趣",
"describe":"常见的任务和环境的偏好"
},
{
"title":"价值观",
"describe":"个人满意度的关键方面"
},
{
"title":"技能",
"describe":"学习发展、组织协作和资源管理的发达能力"
}
]
},
{
"id":"职业扩展",
"name":"提供除本职业之外的扩展知识等各个方面",
"lists":[
{
"title":"活动",
"describe":"常见的工作行为类型"
},
{
"title":"内容",
"describe":"工作性质的物理和社会因素"
},
{
"title":"能力",
"describe":"个人基本持久属性"
}
]
}
];
使用vue操作渲染列表,先对文本分配对应的字段值,格式如下:
{{ item.id }}
{{ item.name }}
{{ list.title}}:
{{ list.describe}}
js操作,引入 vuejs,创建实例渲染到指定对象(引入链接请移步到官网 )
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
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
list+='
'+
'
'+
''+alldata[i].lists[j].title+':'+
''+alldata[i].lists[j].describe+''+
'
'+
'
';
}
html+='
'+
'
'+
'
'+
'
'+alldata[i].id+'
'+
'
'+alldata[i].name+'
'+
'
'+
'
'+list+ //将内层渲染好的列表项模块添加到外层大模块中
'
';
}
data.innerhtml = html; //像指定的id模块追加内容
}
//调用渲染数据方法并传递参数 json数组对象
getdata(alldata);
最终,vue ,原生js 渲染出来的列表数据效果均如下:
希望本文所述对大家vue.js程序设计有所帮助。
希望与广大网友互动??
点此进行留言吧!