详解小程序开发经验:多页面数据同步(2)

直观上这已经非常完美的实现了我们的需求。但在小程序中存在一个与我们常规经验不太一致的地方。那就是页面在关掉后,它里面的对象并没有销毁,这点是因为小程序的逻辑层是共用一个进程。

详解小程序开发经验:多页面数据同步

因此,每次进入页面,都会注册一次监听事件,而退出页面后,该事件并不会销毁。这样的话,多次重复进入页面,就会注册多个重复事件,当事件发生时,就会执行多次响应。请仔细观察下图!

详解小程序开发经验:多页面数据同步

为了避免该现象出现,我们切记要在页面的onUnload事件中,主动销毁监听事件。

Page({ eventsListener: {}, data: { list: [] }, onLoad: function (options) { ... // 监听点赞事件广播 ↓ 重点在这里 ↓ this.eventsListener.feedsLike = App.events.on('feedsLike', data => { console.log('我的动态页面收到点赞变化通知:', data) // 进行更新操作 }) // 监听发布事件广播 ↓ 重点在这里 ↓ this.eventsListener.publishFeeds= App.events.on('publishFeeds', data => { console.log('我的动态页面收到发布动态通知:', data) // 进行更新操作 }) }, ↓ 重点在这里 ↓ onUnload() { for (let i in this.eventsListener) { App.events.remove(i, this.eventsListener[i]) } }, ... })

至此,我们在小程序中完美的实现了跨页面/组件、多页面数据同步。

本文研究的demo均可以小程序中体验,项目源码:

以上所述是小编给大家介绍的小程序开发经验:多页面数据同步详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d79ece8fe64caad1956eb4bc556da6db.html