把要监听的数据放在app.js中,在子组件中使用了定时器去监听app.js里面的数据改变,网上有很多其他人的方法,很不错,但是我不大看得懂,自己做的这个用了定时器,可能性能就不是那么好了。。。
1.在app.js中存放数据,并且获取父组件改变过的值。
1
2
3
4
5
6
7
8
9
|
App({ globaldata: {
lastRelVal: ‘‘ , // 需要监听的数据
},
// 实时更新的数据
setChangeData(data){
this .globaldata.lastRelVal = data
}
}); |
2.在父组件中改变该数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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的值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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)
},
}); |