在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細頁面

小程序開發(fā)基礎(chǔ)篇之?dāng)?shù)據(jù)綁定下(8)

小程序開發(fā)基礎(chǔ)篇之?dāng)?shù)據(jù)綁定下(8)

更新時間:2025-10-03 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一...
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項門檻非常高的創(chuàng)新,經(jīng)過將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開發(fā)環(huán)境和開發(fā)者生態(tài)。
教程接微信小程序開發(fā)教程(基礎(chǔ)篇)7-數(shù)據(jù)綁定上,當(dāng)需要展示一組數(shù)據(jù)時,可以使用wx:for

//.wxml
<view wx:for="{{array}}">
  {{index}}: {{item.message}}
</view>

//.js
age({
  data: {
    array: [{
      message: 'foo',
    }, {
      message: 'bar'
    }]
  }
})

其中index是當(dāng)前數(shù)據(jù)索引的默認變量名,item是當(dāng)前數(shù)據(jù)項的默認變量名。
也可以使用 wx:for-itemwx:for-index 來指定別名

<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">
  {{idx}}: {{itemName.message}}
</view>

也可以嵌套使用,如下面是一個九九乘法表

<view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="i">
  <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="j">
    <view wx:if="{{i <= j}}">
      {{i}} * {{j}} = {{i * j}}
    </view>
  </view>
</view>

類似block wx:if,也可以將wx:for用在<block/>標(biāo)簽上,以渲染一個包含多節(jié)點的結(jié)構(gòu)塊

<block wx:for="{{[1, 2, 3]}}">
  <view> {{index}}: </view>
  <view> {{item}} </view>
</block>

wx:key

要理解為什么需要wx:key,先來看一個例子:

//.wxml
<checkbox wx:for="{{objectArray}}" value="{{item.name}}" style="display: block;"> {{item.name}} </checkbox>
<button bindtap="addToFront">在上方添加一個新的check組件</button>

//.js
Page({
  data: {
    objectArray: [
      {id: 1, name: '我沒有被選中'},
      {id: 2, name: '我沒有被選中'},
    ],
  },

  addToFront: function(e) {
    const length = this.data.objectArray.length
    this.data.objectArray = [{id: length, name: '我沒有被選中'}].concat(this.data.objectArray)
    this.setData({
      objectArray: this.data.objectArray
    })
  },
})

上面的代碼創(chuàng)建了兩個checkbox組件和一個按鈕,當(dāng)點擊按鈕會在最上方新增一個checkbox組件。
編譯代碼,會顯示如下界面:


這里寫圖片描述

點擊按鈕,界面如下:


這里寫圖片描述

ok,到這里一切正常 ,為了更好的說明問題,加入checkbox選中事件的處理,當(dāng)checkbox被選中時,將文字修改為"我被選中了",相關(guān)代碼如下:

//wxml
<checkbox-group bindchange="checkboxChange">
  <checkbox wx:for="{{objectArray}}" value="{{item.id}}" style="display: block;" > {{item.name}} 
  </checkbox>
</checkbox-group>

<button bindtap="addToFront">在上方添加一個新的check組件</button>

//js
Page({
  data: {
    objectArray: [
      {id: 1, name: '我沒有被選中'},
      {id: 2, name: '我沒有被選中'},
    ],
  },

  addToFront: function(e) {
    const length = this.data.objectArray.length
    this.data.objectArray = [{id: length + 1, name: '我沒有被選中'}].concat(this.data.objectArray)
    this.setData({
      objectArray: this.data.objectArray
    })
  },
  checkboxChange: function(e){
    console.log('checkboxChange')
    const length = this.data.objectArray.length
    let checkBoxArray = this.data.objectArray
    for (let i = 0; i < length; i++) {
       let ischecked = false
       for (let j = 0; j < e.detail.value.length; j++){
          if (checkBoxArray[i].id == e.detail.value[j]){
              checkBoxArray[i].name = '我被選中了'
              ischecked = true
          }
       }
       if (!ischecked){
         checkBoxArray[i].name = '我沒有被選中'
       }
    }
    this.setData({
      objectArray: this.data.objectArray
    })
  }
})

當(dāng)選中第一個checkbox時,界面如下


這里寫圖片描述

這時如果點擊添加組件按鈕會怎樣呢,期望的效果應(yīng)該如下


這里寫圖片描述

然而實際效果確是下圖這樣的


這里寫圖片描述

可以看到渲染引擎并沒有將選中的效果和數(shù)據(jù)綁定起來,導(dǎo)致出現(xiàn)了預(yù)期之外的結(jié)果。如果想要達到預(yù)期效果,就要使用wx:key

<checkbox-group bindchange="checkboxChange">
  <checkbox wx:for="{{objectArray}}" wx:key = "id" value="{{item.id}}" style="display: block;" > {{item.name}} 
  </checkbox>
</checkbox-group>

<button bindtap="addToFront">在上方添加一個新的check組件</button>

將.wxml文件修改為上述代碼所示,就可以實現(xiàn)預(yù)期效果,重點就在 wx:key = "id" 這一句

如果列表中項目的位置會動態(tài)改變或者有新的項目添加到列表中,并且希望列表中的項目保持自己的特征和狀態(tài)(如 <input/>
中的輸入內(nèi)容,<switch/> 的選中狀態(tài)),需要使用 wx:key 來指定列表中項目的唯一的標(biāo)識符。

wx:key 的值以兩種形式提供
1 字符串,代表在 for 循環(huán)的 array 中 item 的某個 property,該 property的值需要是列表中唯一的字符串或數(shù)字,且不能動態(tài)改變。
2 保留關(guān)鍵字 *this 代表在 for 循環(huán)中的 item 本身,這種表示需要item 本身是一個唯一的字符串或者數(shù)字,

上面引用自微信官方教程。除了用于保持視圖組件的狀態(tài)外,使用wx:key還有助于提高渲染效率

當(dāng)數(shù)據(jù)改變觸發(fā)渲染層重新渲染的時候,會校正帶有 key的組件,框架會確保他們被重新排序,而不是重新創(chuàng)建,以確保使組件保持自身的狀態(tài),并且提高列表渲染時的效率。

以上就是小程序開發(fā)基礎(chǔ)篇之?dāng)?shù)據(jù)綁定下(8)的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


小程序是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應(yīng)用。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 久久久精品在线视频| 999这里有精品| 亚洲日本黄色片| 午夜免费福利小电影| 久久久精品高清| 熟女人妇 成熟妇女系列视频| 一级黄色大片儿| 成年人在线看片| 人人妻人人添人人爽欧美一区| 在线观看岛国av| 美女一区二区三区视频| 日本一区二区黄色| 国产视频一视频二| av在线com| 香蕉视频免费版| 永久免费在线看片视频| 在线观看免费视频高清游戏推荐| 黄色一级片播放| 日本a在线免费观看| 人妻激情另类乱人伦人妻| 亚洲一区二区中文字幕在线观看| 欧美伦理片在线观看| 精品免费国产一区二区| 欧美成人免费高清视频| 国产精品333| 日本三级免费观看| 国产最新免费视频| 日本熟妇人妻xxxxx| 无码精品国产一区二区三区免费| 青娱乐自拍偷拍| 国产精品va无码一区二区| av日韩一区二区三区| 成人午夜视频在线观看免费| 9久久9毛片又大又硬又粗| 国产美女主播在线| 亚洲 高清 成人 动漫| 男人用嘴添女人下身免费视频| 97国产精东麻豆人妻电影| 精品国产成人av在线免| 天堂社区在线视频| 天天摸天天舔天天操| 亚洲高清av一区二区三区| 免费看黄色a级片| 黄色激情在线视频| 国产精品沙发午睡系列| 自拍偷拍 国产| 午夜视频在线网站| 黄色三级中文字幕| 国产综合免费视频| 亚洲色图欧美自拍| 久久综合九色综合88i| 国产视频在线视频| 裸体大乳女做爰69| 国产精品免费入口| 激情久久综合网| 97超碰青青草| 日本中文字幕在线不卡| 六月婷婷在线视频| 亚洲欧美日韩精品一区| 丰满的少妇愉情hd高清果冻传媒| 91热这里只有精品| 性高湖久久久久久久久aaaaa| 亚洲免费av一区二区三区| 在线播放黄色av| jizzjizzxxxx| 久久久久久久香蕉| 亚洲最大天堂网| 亚洲欧洲日产国码无码久久99| 香蕉视频色在线观看| 91av俱乐部| 国产 日韩 亚洲 欧美| 亚洲黄色小视频在线观看| 欧美日韩中文字幕在线播放 | www日韩视频| 亚洲精品久久久久久久蜜桃臀| 国产aaaaa毛片| 日本a级片免费观看| 日韩精品一区二区三区电影| 午夜dv内射一区二区| 福利视频免费在线观看| 最新视频 - x88av| 国产不卡的av| 久久久久久久久久久久久久久国产| www.日本在线播放| 中文字幕人妻熟女人妻洋洋| 中文国产在线观看| 91小视频在线播放| 欧美亚洲日本在线观看| 黄色免费福利视频| 成人免费a级片| 超碰97在线看| 成年人三级视频| 三级网在线观看| 中文字幕超清在线免费观看| 欧美激情第一区| 国产又粗又猛大又黄又爽| 色一情一区二区三区| 亚洲不卡视频在线| 一区二区免费av| 在线视频一二区| 日韩精品福利片午夜免费观看| 五月天色婷婷综合| 特级西西人体www高清大胆| 五月天激情图片| 91动漫在线看| 成人综合视频在线| 国产精品亚洲二区在线观看| 日韩精品一区二区三区不卡| 欧美 日韩精品| 亚洲免费看av| 无码毛片aaa在线| 国产精品va在线观看无码| 妞干网在线视频观看| 欧美 日韩 国产在线观看| 国产成人a亚洲精v品无码| 宅男噜噜噜66国产免费观看| www.污污视频| 国产婷婷一区二区三区| 久久精品一区二| 久久国产精品国产精品| 欧美日韩视频免费在线观看| 国产精品久久久久7777| 久久精品99国产| 加勒比av中文字幕| 美女黄色免费看| 亚洲一区在线不卡| www插插插无码免费视频网站| 久久免费视频3| 国产精品久久久久久久99| 国产黄色片免费在线观看| 少妇黄色一级片| 国产精品igao激情视频| 国产免费人做人爱午夜视频| 四虎免费在线观看视频| 无码aⅴ精品一区二区三区浪潮| 亚洲欧美日本一区二区三区| 亚洲成人手机在线观看| 免费看一级大黄情大片| 人妻精品无码一区二区三区 | 91精品国产三级| 一本二本三本亚洲码| 波多野结衣50连登视频| 99热这里只有精品7| 国产免费又粗又猛又爽| 天天夜碰日日摸日日澡性色av| 在线播放 亚洲| 好男人www社区| 黄色国产一级视频| 米仓穗香在线观看| 在线观看免费不卡av| 不卡影院一区二区| www.av中文字幕| 无码 制服 丝袜 国产 另类| 九九九九九九九九| 日韩欧美黄色大片| 欧美亚洲另类色图| 大陆av在线播放| 亚洲色图都市激情| 经典三级在线视频| caoporm在线视频| 婷婷六月天在线| 大肉大捧一进一出好爽视频| 日本一本中文字幕| 国产在线视频综合| 日产精品久久久久久久蜜臀| 做爰高潮hd色即是空| 久久久国产精华液999999| 欧美在线观看视频网站| 一本色道无码道dvd在线观看| 国产免费毛卡片| 欧美一级片中文字幕| 国产xxxxx在线观看| 久久久久久久中文| av天堂永久资源网| 成人在线观看黄| 8x8x最新地址| 91 视频免费观看| 久久精品一卡二卡| 日韩精品手机在线观看| 国产精品久久久久久久乖乖| 久久久久免费看黄a片app| 欧美日韩黄色一级片| 欧美精品一区二区三区免费播放| 天天影视综合色| 久久精品一卡二卡| 国产在线视频在线| 国产二区视频在线播放| 欧美三级理论片| 懂色av一区二区三区四区五区| 免费的一级黄色片| 99久久激情视频| 中文字幕第一页亚洲| 性一交一乱一伧国产女士spa| 日本免费黄视频| 九九久久久久久| 国产h视频在线播放| 亚洲综合av在线播放| 黄色一级片国产| www.激情小说.com| 热久久最新地址|