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>