WX04--公共对象、本地存储、页面栈与生命周期函数
1.小程序公共对象
-
全局 app.js
// 小程序顶层的app.js ,存放的是整个小程序的全局对象 App({ /** * 当小程序初始化完成时,会触发 onLaunch * 是整个小程序启动运行时,全局触发执行,后续就不会执行了。全局就只触发一次 */ onLaunch: function () { }, globalData:{ userInfo: null, } })
-
其他页面操作公共值
var app = getApp(); Page({ data: { }, onShow:function(){ app.globalData // this.setData({ // userInfo: app.globalData.userInfo // }) } }); // 注意: 当前页面修改globalData之后,其他页面使用此值不会自动变化, 而是需要onShow函数中手动设置该值 setData(), 将该页面的值,设置成全局变量中的值
2.本地存储操作
// 获取 Sync结尾是同步执行
wx.getStorageSync('userInfo');
// 设置
wx.setStorageSync('userInfo',"sdfsfd");
// 删除
wx.removeStorageSync("userInfo")
3.页面栈
// 获取整个小程序,页面路由跳转的列表
var pages = getCurrentPages();
// 获取上一级页面对象,可获得页面的路由地址
prevPage = pages[pages.length-2];
4.跳转回页面栈中的页面
// 跳转上一级页面
wx.navigateBack({}); // delta: 默认为1,默认跳转回上一级页面
// 可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层
var pages = getCurrentPages();
var pages_number = pages.length // 页面栈的页面数量
wx.navigateBack({
delta: 2 // 跳转上两级页面
});
// 注:如果delta大于现有页面数,则返回到首页
5.小程序页面的生命周期回调函数
- onLoad : 页面第一次加载,获取数据,只执行一次
- onShow : 展示页面到前台,页面每次显示都会触发
- onReady : 页面初次渲染完成时触发,只执行一次
- onHide : 隐藏页面到后台,页面每次隐藏都会加载
- onUnload : 卸载页面,小程序关闭或当使用wx.redirectTo()跳转页面时,触发
6.wx:if指令
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>