中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

observer數據監聽器小程序怎么開發

發布時間:2022-03-10 10:30:06 來源:億速云 閱讀:202 作者:iii 欄目:開發技術

這篇文章主要介紹“observer數據監聽器小程序怎么開發”,在日常操作中,相信很多人在observer數據監聽器小程序怎么開發問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”observer數據監聽器小程序怎么開發”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

  數據監聽器

  數據監聽器可以用于監聽和響應任何屬性和數據字段的變化。從小程序基礎庫版本 2.6.1 開始支持。

  使用數據監聽器

  有時,在一些數據字段被 setData 設置時,需要執行一些操作。

  例如, this.data.sum 永遠是 this.data.numberA 與 this.data.numberB 的和。此時,可以使用數據監聽器進行如下實現。

  Component({

  attached: function() {

  this.setData({

  numberA: 1,

  numberB: 2,

  })

  },

  observers: {

  'numberA, numberB': function(numberA, numberB) {

  // 在 numberA 或者 numberB 被設置時,執行這個函數

  this.setData({

  sum: numberA + numberB

  })

  }

  }

  })

  在開發者工具中預覽效果

  監聽字段語法

  數據監聽器支持監聽屬性或內部數據的變化,可以同時監聽多個。一次 setData 最多觸發每個監聽器一次。

  同時,監聽器可以監聽子數據字段,如下例所示。

  Component({

  observers: {

  'some.subfield': function(subfield) {

  // 使用 setData 設置 this.data.some.subfield 時觸發

  // (除此以外,使用 setData 設置 this.data.some 也會觸發)

  subfield === this.data.some.subfield

  },

  'arr[12]': function(arr12) {

  // 使用 setData 設置 this.data.arr[12] 時觸發

  // (除此以外,使用 setData 設置 this.data.arr 也會觸發)

  arr12 === this.data.arr[12]

  },

  }

  })

  如果需要監聽所有子數據字段的變化,可以使用通配符 ** 。

  Component({

  observers: {

  'some.field.**': function(field) {

  // 使用 setData 設置 this.data.some.field 本身或其下任何子數據字段時觸發

  // (除此以外,使用 setData 設置 this.data.some 也會觸發)

  field === this.data.some.field

  },

  },

  attached: function() {

  // 這樣會觸發上面的 observer

  this.setData({

  'some.field': { /* ... */ }

  })

  // 這樣也會觸發上面的 observer

  this.setData({

  'some.field.xxx': { /* ... */ }

  })

  // 這樣還是會觸發上面的 observer

  this.setData({

  'some': { /* ... */ }

  })

  }

  })

  特別地,僅使用通配符 ** 可以監聽全部 setData 。

  Component({

  observers: {

  '**': function() {

  // 每次 setData 都觸發

  },

  },

  })

  Bugs & Tips:

  數據監聽器監聽的是 setData 涉及到的數據字段,即使這些數據字段的值沒有發生變化,數據監聽器依然會被觸發。

  如果在數據監聽器函數中使用 setData 設置本身監聽的數據字段,可能會導致死循環,需要特別留意。

  數據監聽器和屬性的 observer 相比,數據監聽器更強大且通常具有更好的性能。

到此,關于“observer數據監聽器小程序怎么開發”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涞源县| 黔江区| 孟连| 宽甸| 华阴市| 沅陵县| 云梦县| 清水河县| 西乡县| 虞城县| 宣恩县| 茶陵县| 贺兰县| 上杭县| 合作市| 嫩江县| 自贡市| 龙陵县| 昌黎县| 东海县| 鲁山县| 石首市| 朔州市| 泊头市| 金湖县| 永平县| 罗江县| 灵石县| 昌乐县| 万盛区| 清流县| 东城区| 剑河县| 青阳县| 开鲁县| 文昌市| 凉城县| 嵩明县| 土默特左旗| 鄂伦春自治旗| 偏关县|