关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取

起因:意图是想实现类似于安卓viewpager那样的效果,想到了用微信小程序的swiper组件,但如果每个swiper-item里都只用一个wx:for来渲染数据的话实在是太慢了,就想到多层嵌套数据渲染来提高效率。

直接上代码

wxml:

<view wx:for="{{one}}" wx:key="id">
  <view>----{{item.name}}----</view>
  <view wx:for="{{item.two}}" wx:for-item="two" wx:key="id">

    <view>----{{two.name}}----</view>
  </view>
  <view wx:for="{{item.three}}" wx:for-item="three" wx:key="id">
    ----{{three.name}}----
  </view>
 -------------------------------------------
</view>

js

    one: [{
        id: 1,
        name:‘第一层‘,
        two: [{
          ‘id‘: 11,
          ‘name‘: ‘第二层第一个数据‘
        }, {
          ‘id‘: 12,
            ‘name‘: ‘第二层第二个数据‘
        }],
        three: [{
          ‘name‘: ‘第三层数据‘
        }]
      },
      {
        id: 2,
        name: ‘第二次渲染第一层‘,
        two: [{
          ‘id‘: 13,
          ‘name‘: ‘第二层第一个数据2‘
        }, {
          ‘id‘: 14,
            ‘name‘: ‘第二层第二个数据2‘
        }],
        three: [{
          ‘name‘: ‘第三层数据‘
        }]
      },
      {
        id: 3,
        name: ‘第三次渲染第一层‘,
        two: [{
          ‘id‘: 15,
          ‘name‘: ‘第二层第一个数据3‘
        }, {
          ‘id‘: 16,
            ‘name‘: ‘第二层第二个数据3‘
        }],
        three: [{
          ‘name‘: ‘第三层数据‘
        }]
      }
    ]

实现效果图:

如果你想取其中一个数组的某个字段的值,可以用以下写法:

    var twodata = this.data.one[0].two
    var text = twodata[1].name
    console.log(text)

原文地址:https://www.cnblogs.com/qianduanwriter/p/11827205.html

时间: 2024-08-07 01:34:23

关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取的相关文章

微信小程序从子页面退回父页面时的数据传递 wx.navigateBack()

我们知道,在微信小程序中,从一个页面转到另一个页面,一般情况下可以通过navigate或redirect时候的url来携带参数,然后在目标页面的onLoad函数参数中获取这些url参数.例如: // 源页面A相关代码 wx.navigateTo({ url: "/pages/mypage/mypage?a=1&b=2" }) // 目标页面B相关代码 Page({ onLoad: function (options) { var a = options.a; // 值:1 va

微信小程序使用content-type等于x-www-form-urlencoded方式使用request请求数据

因为服务器只能接收x-www-form-urlencoded方式接收前端收到的数据 所以微信小程序开发的时候,必须鼓捣这个问题. 微信默认使用content-type是 application/json 用wx.request方法改掉header为x-www-form-urlencoded比较简单 wx.request({ 'content-type': 'application/x-www-form-urlencoded' }) 这么干就可以了. 但问题是,微信小程序,似乎不会把我们的数据自动

微信小程序多层嵌套循环,二级数组遍历

小程序中的遍历循环类似于angularJS的遍历. 二级数组遍历有一个坑.二级遍历wx:for循环的时候,需要注意.(代码如下) JS代码: data: { groups: [ [ { title: '狼图腾', cover: '../../img/mineBG.png' }, { title: '狼图腾', cover: '../../img/mineBG.png' }, ], [ { title: '狼图腾', cover: '../../img/mineBG.png' }, ], [ {

微信小程序转义解析渲染html

今天开发小程序时,想调用商品详情字段,发现大部分是用编辑器编辑的html原生标签,无法在小程序直接使用. 后面自己使用正则和字符串替换,效果也不佳. 最后在网上找到了wx-mina-html-view第三方工具库,特此共享,希望能帮到大家! 简介:https://segmentfault.com/a/1190000008195802 Git: https://github.com/fenivana/wx-mina-html-view

微信小程序 项目实战(三)list 列表页 及 item 详情页

1.项目结构 2.list 列表页 (1)数据(逻辑) list.js // pages/list/list.js Page({ /** * 页面的初始数据 */ data: { title: '加载中...', // 状态 list: [], // 数据列表 type: '', // 数据类型 loading: true // 显示等待框 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // options 为 board页传来的

微信小程序如何把后台返回的多条json数据的时间戳转换为时间放到页面上 (微信小程序 时间戳转换为时间)

小程序端 在utils文件夹下的util.js写入 //时间戳转换时间   function toDate(number){   var n=number * 1000;   var date = new Date(n);   var Y = date.getFullYear() + '/';   var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '/';   var D = date

微信小程序 cover-view在 Video(原生组件)中遇到的问题

1:解决disableScroll无法禁止小程序下拉的问题 disableScroll的优先级小于enablePullDownRefresh,因此如果app.json里是enablePullDownRefresh:true,那如果只是在page.json中加上disableScroll:true是无效的,需要在page.json中同时加上enablePullDownRefresh:false: 一般在app.json里写上"enablePullDownRefresh": false, 

微信小程序 setData 数组 渲染问题 删除之后的数组渲染不正确

list: [ { id: 0, mode: 1, src: 'https://s2.yzlcq.cn/images/10070.png', text: '0' }, { id: 1, mode: 1, src: 'https://s2.yzlcq.cn/images/10070.png', text: '1' }, { id: 2, mode: 1, src: 'https://s2.yzlcq.cn/images/10070.png', text: '2' } ], onDelete(e)

微信小程序-if条件渲染

#index.wxml <view>今天吃啥</view> <view wx:if="{{condition==1}}"> 饺子 </view> <view wx:elif="{{condition ==2}}"> 馒头 </view> <view wx:else> 面条</view> #index.js data: { "condition":Mat