微信小程序開發(fā)數(shù)據(jù)監(jiān)聽器
微信小程序數(shù)據(jù)監(jiān)聽器可以用于監(jiān)聽和響應任何屬性和數(shù)據(jù)字段的變化,是在小程序基礎庫版本2.6.1以后開始支持的。下面介紹如何使用數(shù)據(jù)監(jiān)聽器。
1. 使用數(shù)據(jù)監(jiān)聽器
當一些數(shù)據(jù)字段被setData設置時,需要執(zhí)行一些操作。例如,this.data.sum永遠是this.data.numberA與this.data.numberB的和。此時,可以使用數(shù)據(jù)監(jiān)聽器進行實現(xiàn)。使用示例如下:
<Component>{
attached: function() {
this.setData({
numberA: 1,
numberB: 2,
})
},
observers: {
'numberA, numberB': function(numberA, numberB) {
// 在 numberA 或者 numberB 被設置時,執(zhí)行這個函數(shù)
this.setData({
sum: numberA + numberB
})
}
}
}</Component>
2. 監(jiān)聽字段語法
數(shù)據(jù)監(jiān)聽器支持監(jiān)聽屬性或內(nèi)部數(shù)據(jù)的變化,可以同時監(jiān)聽多個。一次setData最多觸發(fā)每個監(jiān)聽器一次。同時,監(jiān)聽器可以監(jiān)聽子數(shù)據(jù)字段。示例如下:
<Component>{
observers: {
'some.subfield': function(subfield) {
// 使用 setData 設置 this.data.some.subfield 時觸發(fā)
// (除此以外,使用 setData 設置 this.data.some 也會觸發(fā))
subfield === this.data.some.subfield
},
'arr[12]': function(arr12) {
// 使用 setData 設置 this.data.arr[12] 時觸發(fā)
// (除此以外,使用 setData 設置 this.data.arr 也會觸發(fā))
arr12 === this.data.arr[12]
},
'some.field.**': function(field) {
// 使用 setData 設置 this.data.some.field 本身或其下任何子數(shù)據(jù)字段時觸發(fā)
// (除此以外,使用 setData 設置 this.data.some 也會觸發(fā))
field === this.data.some.field
},
'**': function() {
// 每次 setData 都觸發(fā)
},
},
}
如果需要監(jiān)聽所有子數(shù)據(jù)字段的變化,可以使用通配符**。特別地,僅使用通配符**可以同時監(jiān)聽全部setData操作。
提示:數(shù)據(jù)監(jiān)聽器監(jiān)聽的是setData涉及到的數(shù)據(jù)字段,即使這些數(shù)據(jù)字段的值沒有發(fā)生變化,數(shù)據(jù)監(jiān)聽器依然會被觸發(fā)。如果在數(shù)據(jù)監(jiān)聽器函數(shù)中使用setData設置本身監(jiān)聽的數(shù)據(jù)字段,可能會導致死循環(huán),需要特別留意。數(shù)據(jù)監(jiān)聽器和屬性的observer相比,數(shù)據(jù)監(jiān)聽器更強大且通常具有更好的性能。
<本文由himall原創(chuàng),商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權,非商業(yè)轉(zhuǎn)載請標明:himall原創(chuàng)>
滿足不同行業(yè)發(fā)展電商的需求,HiMall更有針對性的提供不同行業(yè)內(nèi)的電商解決方案
-
跨境電商解決方案
支持直郵/保稅模式
對接海關/保稅倉
支持多國國際語言
對接Paypal國際支付
幫助跨境外貿(mào)企業(yè)搭建跨境進口/出口電商平臺,搶占國際電商市場,針對企業(yè)需求定制個性化跨境電商解決方案 -
分賬解決方案
迎合金融監(jiān)管要求
規(guī)避“二清”結算
節(jié)約平臺財務成本
降低平臺招商成本
在合法、合規(guī)的前提下,為電商平臺提供資金收付、賬戶管理、資金合規(guī)等一體化整體解決方案 -
B2B批發(fā)解決方案
多級階梯批發(fā)價
布局全渠道批發(fā)入口
專屬批發(fā)訂貨市場
銀聯(lián)B2B大額支付
為企業(yè)快速搭建綜合性B2B批發(fā)電商平臺,整合線下批發(fā)資源,拓展線上批發(fā)渠道,實現(xiàn)批發(fā)業(yè)務24小時在線經(jīng)營
-
MRO工業(yè)品采購平臺系統(tǒng)|MRO工業(yè)品采購平臺系統(tǒng)有哪些功能
最新消息:MRO工業(yè)品采購平臺系統(tǒng) 是一款集產(chǎn)、研、銷于一體的綜合性解決方案,專為解決工業(yè)品企業(yè)的采購難題而設計。該系統(tǒng)通過...詳情
-
電子元器件采購商城系統(tǒng)|電子元器件采購商城系統(tǒng)有哪些功能
最新消息:電子元器件采購商城系統(tǒng) 是專為滿足電子元器件行業(yè)復雜業(yè)務流程需求而設計的綜合性平臺。它不僅提供了全面的技術支持...詳情
【本站聲明】
1、本網(wǎng)站發(fā)布的該篇文章,目的在于分享電商知識及傳遞、交流相關電商信息,以便您學習或了解電商知識,請您不要用于其他用途;
2、該篇文章中所涉及的商標、標識的商品/服務并非來源于本網(wǎng)站,更非本網(wǎng)站提供,與本網(wǎng)站無關,系他人的商品或服務,本網(wǎng)站對于該類商標、標識不擁有任何權利;
3、本網(wǎng)站不對該篇文章中所涉及的商標、標識的商品/服務作任何明示或暗示的保證或擔保;
4、本網(wǎng)站不對文章中所涉及的內(nèi)容真實性、準確性、可靠性負責,僅系客觀性描述,如您需要了解該類商品/服務詳細的資訊,請您直接與該類商品/服務的提供者聯(lián)系。