您好,登錄后才能下訂單哦!
這篇文章主要介紹微信小程序中wxml列表渲染的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
列表渲染存在的意義
以電商為例,我們希望渲染5個商品,而又希望容易改變,我們就要在wxml中動態添加。
<view> <block wx:for="{{products}}" wx:for-item="item" wx:key="index"> <view>{{index+1}}:{{item.name}}</view> </block> </view>
Page({ data: { message: "hello world", products: [{ name: "商品A" }, { name: "商品B" }, { name: "商品C" }, { name: "商品D" }, { name: "商品E" } ] } })
上面在一個非顯示組件block中,我們渲染五個有內容的view
wx:for是循環數組,wx:for-item即給列表賦別名
子循環
<view wx:for="{{parentList}}"> {{item.id}} <view wx:for="{{item.childList}}" wx:for-item="items"> {{items.name}}{{items.account}} </view>
wx:key用來穩定渲染,作為渲染想的唯一標識(主要有三種)
1、字符串
代表在 for 循環的 array 中 item 的某個 property,該 property 的值需要是列表中唯一的字符串或數字,且不能動態改變。
data: { input_data: [ { id: 1, unique: "unique1" }, { id: 2, unique: "unique2" }, { id: 3, unique: "unique3" }, { id: 4, unique: "unique4" }, ] } //test.wxml <input value="id:{{item.id}}" wx:for="{{input_data}}" wx:key="unique" />
2、保留關鍵字 *this
代表在 for 循環中的 item 本身,這種表示需要 item 本身是一個唯一的字符串或者數字,如:
當數據改變觸發渲染層重新渲染的時候,會校正帶有 key 的組件,框架會確保他們被重新排序,而不是重新創建,以確保使組件保持自身的狀態,并且提高列表渲染時的效率。
data: { numberArray: [1, 2, 3, 4], stringArray:['aaa','ccc','fff','good'] } //test.wxml <input value="id:{{ item }}" wx:for="{{numberArray}}" wx:key="*this" /> <input value="id:{{ item }}" wx:for="{{stringArray}}" wx:key="*this" /> },
一般是指定一個唯一的字段(類似于id的定義);
3、通配符+名字
用wx:key和不用對比
wk:key | 組件識別 | 渲染情況 | 狀態情況 | for效率 |
---|---|---|---|---|
有 | 各組件可識別 | 渲染時僅改變組件順序 | 保持組件之前原來狀態 | 效率高 |
無 | 組件無法識別 | 渲染時重新創建各組件 | 重置組件的初始狀態 | 效率低 |
1.需要wx:key的情況
列表中項目的位置會動態改變或者有新的項目添加到列表中
希望列表中的項目保持自己的特征和狀態
(如 <input/> 中的輸入內容,<switch/> 的選中狀態)
以上是“微信小程序中wxml列表渲染的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。