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

Posted qianduanwriter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取相关的知识,希望对你有一定的参考价值。

起因:意图是想实现类似于安卓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)

技术图片

以上是关于关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序 教程之条件渲染

微信小程序开发——列表渲染 & 条件渲染 & tabBar & 页面跳转

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

使用 yield 压平多层嵌套字典列表混合数据

微信小程序一文搞懂条件渲染列表渲染以及wxss模板样式

微信小程序条件渲染和列表渲染