日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)小程序教程:微信小程序數(shù)據(jù)監(jiān)聽器

數(shù)據(jù)監(jiān)聽器

數(shù)據(jù)監(jiān)聽器可以用于監(jiān)聽和響應(yīng)任何屬性和數(shù)據(jù)字段的變化。從小程序基礎(chǔ)庫版本 2.6.1 開始支持。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、網(wǎng)站制作、海寧網(wǎng)絡(luò)推廣、小程序定制開發(fā)、海寧網(wǎng)絡(luò)營銷、海寧企業(yè)策劃、海寧品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供海寧建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

使用數(shù)據(jù)監(jiān)聽器

有時(shí),在一些數(shù)據(jù)字段被 setData 設(shè)置時(shí),需要執(zhí)行一些操作。

例如, this.data.sum 永遠(yuǎn)是 this.data.numberA 與 this.data.numberB 的和。此時(shí),可以使用數(shù)據(jù)監(jiān)聽器進(jìn)行如下實(shí)現(xiàn)。

Component({
  attached: function() {
    this.setData({
      numberA: 1,
      numberB: 2,
    })
  },
  observers: {
    'numberA, numberB': function(numberA, numberB) {
      // 在 numberA 或者 numberB 被設(shè)置時(shí),執(zhí)行這個(gè)函數(shù)
      this.setData({
        sum: numberA + numberB
      })
    }
  }
})

監(jiān)聽字段語法

數(shù)據(jù)監(jiān)聽器支持監(jiān)聽屬性或內(nèi)部數(shù)據(jù)的變化,可以同時(shí)監(jiān)聽多個(gè)。一次 setData 最多觸發(fā)每個(gè)監(jiān)聽器一次。

同時(shí),監(jiān)聽器可以監(jiān)聽子數(shù)據(jù)字段,如下例所示。

Component({
  observers: {
    'some.subfield': function(subfield) {
      // 使用 setData 設(shè)置 this.data.some.subfield 時(shí)觸發(fā)
      // (除此以外,使用 setData 設(shè)置 this.data.some 也會(huì)觸發(fā))
      subfield === this.data.some.subfield
    },
    'arr[12]': function(arr12) {
      // 使用 setData 設(shè)置 this.data.arr[12] 時(shí)觸發(fā)
      // (除此以外,使用 setData 設(shè)置 this.data.arr 也會(huì)觸發(fā))
      arr12 === this.data.arr[12]
    },
  }
})

如果需要監(jiān)聽所有子數(shù)據(jù)字段的變化,可以使用通配符 ** 。

Component({
  observers: {
    'some.field.**': function(field) {
      // 使用 setData 設(shè)置 this.data.some.field 本身或其下任何子數(shù)據(jù)字段時(shí)觸發(fā)
      // (除此以外,使用 setData 設(shè)置 this.data.some 也會(huì)觸發(fā))
      field === this.data.some.field
    },
  },
  attached: function() {
    // 這樣會(huì)觸發(fā)上面的 observer
    this.setData({
      'some.field': { /* ... */ }
    })
    // 這樣也會(huì)觸發(fā)上面的 observer
    this.setData({
      'some.field.xxx': { /* ... */ }
    })
    // 這樣還是會(huì)觸發(fā)上面的 observer
    this.setData({
      'some': { /* ... */ }
    })
  }
})

特別地,僅使用通配符 ** 可以監(jiān)聽全部 setData 。

Component({
  observers: {
    '**': function() {
      // 每次 setData 都觸發(fā)
    },
  },
})

提示:

  • 數(shù)據(jù)監(jiān)聽器監(jiān)聽的是 setData 涉及到的數(shù)據(jù)字段,即使這些數(shù)據(jù)字段的值沒有發(fā)生變化,數(shù)據(jù)監(jiān)聽器依然會(huì)被觸發(fā)。
  • 如果在數(shù)據(jù)監(jiān)聽器函數(shù)中使用 setData 設(shè)置本身監(jiān)聽的數(shù)據(jù)字段,可能會(huì)導(dǎo)致死循環(huán),需要特別留意。
  • 數(shù)據(jù)監(jiān)聽器和屬性的 observer 相比,數(shù)據(jù)監(jiān)聽器更強(qiáng)大且通常具有更好的性能。

網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)小程序教程:微信小程序數(shù)據(jù)監(jiān)聽器
當(dāng)前路徑:http://www.dlmjj.cn/article/dheiddi.html