微信小程序里的數據怎么看?如何檢測小程序數據變化
2020-05-27 17:09 互聯(lián)網(wǎng)
在vue中,computed是一個(gè)計算屬性,類(lèi)似于過(guò)濾器,對綁定到view的數據進(jìn)行處理,并監聽(tīng)變化。而watch監聽(tīng)復雜數據類(lèi)型需用深度監聽(tīng)。這兩者都可以在vue上實(shí)現檢測數據的變化。而微信小程序不同于vue可以使用watch和computed做出相應的改變。小程序中只有函數this.setData()可以檢測數據,所以小程序每次數據改變需要檢測時(shí)都必須手動(dòng)執行函數才可實(shí)現。除此之外,小程序還可以附上這兩個(gè)功能檢測數據變化。
vue 里是通過(guò) Object.defineProperty 來(lái)實(shí)現數據變化檢測的,給該變量的 setter 里注入所有的綁定操作,就可以在該變量變化時(shí)帶動(dòng)其它數據的變化。實(shí)際上,在小程序里實(shí)現要比 vue 里簡(jiǎn)單,應為對于 data 里對象來(lái)說(shuō),vue 要遞歸的綁定對象里的每一個(gè)變量,使之響應式化。但是在微信小程序里,不管是對于對象還是基本類(lèi)型,只能通過(guò) this.setData() 來(lái)改變,這樣我們只需檢測 data 里面的 key 值的變化,而不用檢測 key 值里面的 key 。
這里分別調用 test2 和 test3 的值,將返回值與對應的 key 值組合成一個(gè)對象,然后再調用 setData() ,這樣就會(huì )第一次計算這兩個(gè)值,這里使用了 reduce 方法。test2 和 test3 都是依賴(lài) test 的,這樣必須在 test 改變的時(shí)候在其的 setter 函數中調用 test2 和 test3 中對應的函數,并通過(guò) setData 來(lái)設置這兩個(gè)變量。 在云里,為各行業(yè)商戶(hù)搭建自己的小程序。微信號:zaiyunli002