微信小程序列表渲染

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章