钉钉小程序------子组件监测父组件的数据更新

原文:钉钉小程序------子组件监测父组件的数据更新

把要监听的数据放在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)
  },
});

 

钉钉小程序------子组件监测父组件的数据更新

上一篇:钉钉小程序【页面跳转方式】


下一篇:钉钉小程序组件之自定义模态框(弹窗封装实现)