【移動(dòng)應(yīng)用開發(fā)技術(shù)】「小程序JAVA實(shí)戰(zhàn)」小程序視圖之細(xì)說wx:key列表高級特_第1頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】「小程序JAVA實(shí)戰(zhàn)」小程序視圖之細(xì)說wx:key列表高級特_第2頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】「小程序JAVA實(shí)戰(zhàn)」小程序視圖之細(xì)說wx:key列表高級特_第3頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】「小程序JAVA實(shí)戰(zhàn)」小程序視圖之細(xì)說wx:key列表高級特_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】「小程序JAVA實(shí)戰(zhàn)」小程序視圖之細(xì)說wx:key列表高級特

wx:key的高級特性。這個(gè)很重要,因?yàn)樵赼pp上經(jīng)常有上拉,下拉加載,我們?nèi)绻皇褂眠@個(gè)特性的很可能列表就亂了。源碼:/limingios/wxProgram.git中的No.8wx:key的高級特性。這個(gè)很重要,因?yàn)樵赼pp上經(jīng)常有上拉,下拉加載,我們?nèi)绻皇褂眠@個(gè)特性的很可能列表就亂了。源碼:/limingios/wxProgram.git中的No.8小程序的列表的渲染官方的闡述>/miniprogram/dev/framework/view/wxml/list.html演示wx:key>如果列表中項(xiàng)目的位置會動(dòng)態(tài)改變或者有新的項(xiàng)目添加到列表中,并且希望列表中的項(xiàng)目保持自己的特征和狀態(tài)(如input中的輸入內(nèi)容,

的選中狀態(tài)),需要使用wx:key來指定列表中項(xiàng)目的唯一的標(biāo)識符。wx:key的值以兩種形式提供字符串,代表在for循環(huán)的array中item的某個(gè)property,該property的值需要是列表中唯一的字符串或數(shù)字,且不能動(dòng)態(tài)改變。保留關(guān)鍵字*this代表在for循環(huán)中的item本身,這種表示需要item本身是一個(gè)唯一的字符串或者數(shù)字,如:當(dāng)數(shù)據(jù)改變觸發(fā)渲染層重新渲染的時(shí)候,會校正帶有key的組件,框架會確保他們被重新排序,而不是重新創(chuàng)建,以確保使組件保持自身的狀態(tài),并且提高列表渲染時(shí)的效率。wxKey.wxml<!wxKey.wxml-->

<view

class="container">

<switch

wx:for="{{objectArray}}"

wx:key="unique"

>

{{item.id}}

</switch>

<button

bindtap="switch">

Switch

</button>

<button

bindtap="addToFront">

Add

to

the

front

</button>

<switch

wx:for="{{numberArray}}"

wx:key="*this"

>

{{item}}

</switch>

<button

bindtap="addNumberToFront">

Add

to

the

front

</button>

</view>wxKey.js//wxKey.js

//獲取應(yīng)用實(shí)例

const

app

=

getApp()

Page({

data:

{

objectArray:

[{

id:

5,

unique:

'unique_5'

},

{

id:

4,

unique:

'unique_4'

},

{

id:

3,

unique:

'unique_3'

},

{

id:

2,

unique:

'unique_2'

},

{

id:

1,

unique:

'unique_1'

},

{

id:

0,

unique:

'unique_0'

},

],

numberArray:

[1,

2,

3,

4]

},

switch:

function(e)

{

const

length

=

this.data.objectArray.length

for

(let

i

=

0;

i

<

length;

++i)

{

const

x

=

Math.floor(Math.random()

*

length)

const

y

=

Math.floor(Math.random()

*

length)

const

temp

=

this.data.objectArray[x]

this.data.objectArray[x]

=

this.data.objectArray[y]

this.data.objectArray[y]

=

temp

}

this.setData({

objectArray:

this.data.objectArray

})

},

addToFront:

function(e)

{

const

length

=

this.data.objectArray.length

this.data.objectArray

=

[{

id:

length,

unique:

'unique_'

+

length

}].concat(this.data.objectArray)

this.setData({

objectArray:

this.data.objectArray

})

},

addNumberToFront:

function(e)

{

this.data.numberArray

=

[this.data.numberArray.length

+

1].concat(this.data.numberArray)

this.setData({

numberArray:

this.data.numberArray

})

}

})如果不加入wx:key=”unique”或者wx:key=”*this”進(jìn)行綁定的話,可能存在漂移的情況,這種問題很大,建議在for循環(huán)的時(shí)候都定義一個(gè)唯一的key。如果不加入wx:key=”unique”或者wx:key

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論