小程序の页面App生命周期&路由传参
App生命周期
属性 | 说明 | 用法 |
---|---|---|
onLaunch | 监听小程序初始化 | 应用第一次启动就会触发的事件(一般用做程序启动获取用户的个人信息)[比onShow先触发] |
onShow | 监听小程序启动或切前台 | 应用被用户看到时触发,比onLaunch慢,会频繁触发[重置应用的数据和页面效果] |
onHide | 监听小程序切后台 | 应用被隐藏[暂停或清除定时器,减少内存] |
onError | 错误监听函数 | 应用代码发生报错会触[收集用户的错误信息,通过异步请求将错误的信息发送到后台] |
onPageNotFound | 页面不存在监听函数 | 应用第一次启动的时候,如果找不到第一个入口页面,才会触发[如果首页找不到了,重新跳到第二个首页] |
Page生命周期
属性 | 说明 | 用法 |
---|---|---|
onLoad | 监听页面加载 | 发送异步请求来初始化页面数据(页面加载时第一个调用) |
onShow | 监听页面显示 | 页面加载时第二个调用 |
onReady | 监听页面初次渲染完成 | 页面加载时第三个调用 |
onHide | 监听页面隐藏 | |
onUnload | 监听页面卸载 | |
onPullDownRefresh | 监听用户下拉动作 | 页面数据和样式初始化,需要配置 “enablePullDownRefresh”: true |
onReachBottom | 页面上拉触底事件的处理函数 | 上拉加载下一页数据 |
onShareAppMessage | 用户点击右上角转发 | |
onPageScroll | 页面滚动触发事件的处理函数 | 小程序横屏竖屏切换时触发 [需要在json文件中配置 “pageOrientation”:”auto”]开启横竖屏切换 |
onResize | 页面尺寸改变时触发 | |
onTabItemTap | 当前是tab页,点击tab时触发 |
路由传参和参数获取
场景: 微信小程序的路由跳转方式分为两种: 1) 组件跳转 2) API跳转
组件跳转时传参
// 通过拼接url参数进行组件传参 target-> 在小程序内跳转 // 注意点: 不能通过es6的模板字符串进行拼接,tabBar跳转无法传递参数 <navigator target="self" url='/packagePlayer/pages/music-player/index?id={{id}}' ></navigator>
API跳转
<button catchtap="onJumpUrl">跳转</button> Page({ onJumpUrl(e){ // API调用因为是写在js里的,可以使用ES6的模板字符串 wx.navigateTo({ url: `/packagePlayer/pages/music-player/index?id=${this.data.id}`, }); } })
注意: 微信小程序是多种路由跳转方式的,但是传参基本一致,这里为了演示如何拼接参数只使用了部分API(组件跳转可以在open-type
中设置跳转属性)
- 路由参数获取
生命周期获取
定义: 在Page的onLoad生命周期可以通过options参数获取Page({ onLoad(options){ const { id } = options } })
API获取
let pages = getCurrentPages(); // 获取跳转页面的信息数组 let currentPages = pages[pages.length - 1] // 每次都取上一个页面的信息 let options = currentPages.options // 通过options里获取参数 const { goods_id } = options this.getGoodsDetails(goods_id)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!