美文网首页
微信小程序列表渲染

微信小程序列表渲染

作者: 椰果粒 | 来源:发表于2019-10-12 10:27 被阅读0次

    1. 指令
    渲染指令:vx:for
    每个项目在微信小程序中定好了,都叫item。

    2. 微信小程序的列表渲染
    可以渲染数组,字符串,数字

    // 渲染数字
    <view wx:for="{{students}}" wx:key="{{item.id}}">{{ item.name }} - {{item.age}} - {{index}}</view>
    // 渲染字符串
    <view wx:for="xiaodudu" wx:key="{{index}}">{{item}} - {{index}}</view>
    // 渲染数字
    <view wx:for="{{10}}" wx:key="{{index}}">{{item}}</view>
    

    3. 特殊的block标签
    block标签,不是组件,是标签,不会被渲染出来,类似于Vue的template标签。
    我们用block标签可以做vx:if或者vx:for,但是不能写其他非渲染标签,比如style啥的。因为block标签不会在DOM树中渲染。

    使用block的好处:

    • 性能消耗的要少
    <block wx:for="{{3}}">
      <button>click me</button>
      <view>哈哈哈</view>
    </block>
    

    4. 给item和index起名字

    <!-- 在什么情况下会起名字:在多层遍历的时候 -->
    <view 
      wx:for="{{movies}}" 
      wx:for-item="movie"
      wx:for-index="i"
    >{{movie}} -- {{i}}</view>
    
    <block wx:for="{{nums}}" wx:for-item="outer">
      <block wx:for="{{outer}}">
        <view>{{item}}</view>
      </block>
    </block>
    

    5. 给遍历组件绑定key
    和虚拟DOM有关,DIFF算法有关。
    加上key能提高性能
    有key的话,先将改变的那个放在最后边,其他不变,再将它插入到应该在的位置中。

    key:会优先对比key。
    所以不能用index来做,这样key是时时刻刻变化的,性能并不会提高了。

    以下是for循环的正确且完整的写法:

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

    相关文章

      网友评论

          本文标题:微信小程序列表渲染

          本文链接:https://www.haomeiwen.com/subject/nprspctx.html