// 页面A.vue
let xx = Date.now() // 仅在首次加载时执行一次
export default {
onLoad() {
console.log('进入页面A时xx的值:', xx) // 后续进入不会重新获取时间戳
},
onUnload() {
xx = '88' // 修改的是共享的模块变量
}
}
场景
微信小程序let xx不会因为navagateTo或delta返回而消失
只要不在export中下次进入a仍然会存在即不是打印新时间而是字符888
因为设计上存在栈,页面只是被隐藏没有真消失 只有redirect relanch或直接关闭小程序再打开才会变化
特定下一些错误可能由这个会引起注意避免 尤其是配合定时器时let timer 时注意onUnload清除定时器