把要監聽的數據放在app.js中,在子組件中使用了定時器去監聽app.js里面的數據改變,網上有很多其他人的方法,很不錯,但是我不大看得懂,自己做的這個用了定時器,可能性能就不是那么好了。。。
1.在app.js中存放數據,並且獲取父組件改變過的值。
App({
globaldata: {
lastRelVal: '', // 需要監聽的數據
},
// 實時更新的數據
setChangeData(data){
this.globaldata.lastRelVal = data
}
});
2.在父組件中改變該數據。
let app = getApp() // 引入app.js
var lastRelVal = ''
Page({
data: {
},
// 頁面加載完成
onReady() {
this.setData()
},
// 改變app.js里面的值
setData() {
for (let i = 0; i <= 10; i++) {
lastRelVal = i
app.setChangeData(lastRelVal)
}
},
});
3.在子組件中每隔1s取app.js的值
let app = getApp()
Component({
data: {
},
// 頁面加載完成
onReady() {
this.setData()
},
// 接收app.js里面的值
didMount() {
// 每隔1s取app.js里面的lastRelVal值
this.interval = setInterval(() => {
console.log("隔1s取的新值",app.globaldata.lastRelVal)
},1000)
},
});
