vue.js基于v-for实现批量渲染 Json数组对象列表数据示例


Posted in Javascript onAugust 03, 2019

本文实例讲述了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="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
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基于v-for实现批量渲染 Json数组对象列表数据示例

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
基于Jquery的简单&amp;简陋Tabs插件代码
Feb 09 Javascript
JSON JQUERY模板实现说明
Jul 03 Javascript
IE与FireFox的JavaScript兼容问题解决办法
Dec 31 Javascript
jquery sortable的拖动方法示例详解
Jan 16 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
Oct 11 Javascript
浅谈js的解析顺序 作用域 严格模式
Oct 23 Javascript
微信小程序实现验证码获取倒计时效果
Feb 08 Javascript
微信小程序适配iphoneX的实现方法
Sep 18 Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
vue实现移动端省市区选择
Sep 27 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
Aug 03 #Javascript
jQuery实现的记住帐号密码功能完整示例
Aug 03 #jQuery
小程序中英文混合排序问题解决
Aug 02 #Javascript
详解JWT token心得与使用实例
Aug 02 #Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 #Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 #Javascript
vue下使用nginx刷新页面404的问题解决
Aug 02 #Javascript
You might like
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
BootStrap selectpicker
2016/06/20 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
python3简单实现微信爬虫
2015/04/09 Python
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python实现自动化上线脚本的示例
2019/07/01 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
如何使用python切换hosts文件
2020/04/29 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
《尊严》教学反思
2014/02/11 职场文书
竞选村长演讲稿
2014/04/28 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
信访工作汇报材料
2014/10/27 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
win sever 2022如何占用操作主机角色
2022/06/25 Servers