一、app.js(程序生命钩子函数和自定义全局变量、事件)
- app实例
App({
// 所有的 js代码都写在 app实例 里面
})
- 应用启动触发,只会触发一次
onLaunch: function (){
console.log("应用启动了")
}
- 每次成为焦点状态都会触发(页面显示时)
onShow:function(options){
// options.scene 可以判断进入该页面的方式
}
- 隐藏到后台
onHide:function(){
console.log('隐藏到后台')
}
- 程序异常 只能捕获到 运行阶段的异常
onError:function(msg){
console.log(msg)
}
- 除了生命周期中约定的 钩子函数 ,还可以定义任何成员,这里定义的成员数据可以在 每个页面中共享,在 app.js里面可以 定义全局共享的变量,在子页面的js文件获取
foo:"这是一个app.js里面定义的全局变量",
// app.js定义全局方法
say(){
console.log("app.js中定义的全局方法")
}
二、 子页面的js文件
1.子页面的所有数据在page({ })
//获取应用实例
// 页面的生命周期
const app = getApp()
page({
data:{ // 数据 }
})
2.页面加载,这个页面即将要工作了,页面的初始化
onLoad: function (){
// 获取 app.js中定义的全局变量
console.log(app.foo)
// 调用app.js中定义的全局方法
app.say()
}
3.页面进入焦点状态(页面在前台展示)
onShow:function(){
console.log('页面在前台展示')
}
4.页面隐藏(进入后台)
onHide:function(){
console.log('页面进入后台')
}
5.页面准备好了,页面渲染完成
onReady:function(){
// 只有页面加载完成,才可以设置标题
wx.setNavigationBarTitle({
title: '动态设置标题',
})
console.log('页面展示完成')
}
6.页面卸载,页面被销毁(可以用于页面卸载之前保存页面上的数据 或者状态)
onUnload:function(){
// 页面不能通过返回 箭头回去,只能通过url跳转回去的页面
console.log('页面被销毁')
}
补充:js中跳转问题
- 跳到导航页面 用 wx.switchTab ({ url: " " })
- 跳转除了 页面下方导航那几个页面,其他都可以用 wx.navigateTo({ url: " " })