微信原生小程序以及uni-app的钩子函数和生命周期,路由跳转

1.小程序钩子函数

onLaunch:小程序App启动时执行(全局只执行一次)
onLoad:第一次进入页面前会进入此函数,类似于vue中的created
onReady:类似于vue中的mounted,监听页面初次渲染完成
onShow:每次进入该页面都会触发
onHide:每次离开该页面会触发
onUnload:页面卸载,vue中的beforeDestroy
onError:小程序发生脚本错误,或者 api 调用失败时触发,会带上错误信息
onPageNotFound:页面不存在监听函数
onShareAppMessage:用户点击右上角分享会触发该函数

uni-app钩子

onLoad 页面的加载触发事件
onReady 页面数据初次渲染完成
onShow 页面从后台进入页面时触发
onHide 页面从前台进入到后台时触发
onUnload 页面从后台卸载时触发,结束进程
onPillDownRefresh 用户下拉属刷新页面时候触发
onReachBottom 页面上拉触底时触发
onShareAppMessage 用户点击分享时候触发
onPageScroll 页面滚动时触发

2.原生小程序 几种 跳转方法

// 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,但是 redirectTo不会
wx.navigateTo({url: ‘page/home/home?user_id=007’})
// 关闭当前页面,跳转到应用内的某个页面。
wx.redirectTo({url: ‘page/home/home?user_id=007’})
// 跳转到tabBar页面(在app.json中注册过的tabBar页面),同时关闭其他非tabBar页面。
wx.switchTab({url: ‘page/index/index’})
// 关闭所有页面,打开到应用内的某个页面。
wx.reLanch({url: ‘page/home/home?user_id=007’})
// 关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。
wx.navigateTo({url: ‘page/home/home?student_id=1’})
wx.navigateTo({url: ‘page/detail/detail?product_id=2’}) // 页面 B
// 跳转到页面 A
wx.navigateBack({delta: 2 }) //返回的页面(层)数

3.原生小程序页面组件跳转

// navigator 组件默认的 open-type 为 navigate 
<navigator url="/page/navigate/navigate?title=navigate" hover-class="navigator-hover">跳转到新页面</navigator>
// redirect 对应 API 中的 wx.redirect 方法
<navigator url="../../redirect/redirect/redirect?title=redirect" open-type="redirect" hover-class="other-navigator-hover">在当前页打开</navigator>
// switchTab 对应 API 中的 wx.switchTab 方法
<navigator url="/page/index/index" open-type="switchTab" hover-class="other-navigator-hover">切换 Tab</navigator>
// reLanch 对应 API 中的 wx.reLanch 方法
<navigator url="../../redirect/redirect/redirect?title=redirect" open-type="redirect" hover-class="other-navigator-hover">关闭所有页面,打开到应用内的某个页面</navigator>
// navigateBack 对应 API 中的 wx.navigateBack 方法
<navigator url="/page/index/index" open-type="navigateBack" hover-class="other-navigator-hover">关闭当前页面,返回上一级页面或多级页面</navigator>

4.uni-app小程序生命周期

onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考示例  
onShow 监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面  
onReady 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发  
onHide 监听页面隐藏  
onUnload 监听页面卸载  
onResize 监听窗口尺寸变化 App、微信小程序 
onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新,参考示例  
onReachBottom 页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体见下方注意事项  
onTabItemTap 点击 tab 时触发,
onShareAppMessage 用户点击右上角分享 微信小程序、百度小程序、字节跳动小程序、支付宝小程序 
onPageScroll 监听页面滚动,参数为Object nvue暂不支持 
onNavigationBarButtonTap 监听原生标题栏按钮点击事件,参数为Object App、H5 
onBackPress 监听页面返回, 
onShareTimeline 监听用户点击右上角转发到朋友圈 微信小程序 2.8.1+

5.uni-app页面通讯

uni.$emit('update',{msg:'页面更新'})
uni.$on('update',function(data){
        console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
    })
uni.$once('update',function(data){
        console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
    })
uni.$off('add', this.add)

6.uni-app跳转路由

//在起始页面跳转到test.vue页面并传递参数
uni.navigateTo({ url: 'test?id=1&name=uniapp'});
uni.redirectTo({});//关闭当前页面,跳转到应用内的某个页面
uni.reLaunch({})//关闭所有页面,打开到应用内的某个页面
uni.switchTab({})//跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
uni.navigateTo({url: 'B?id=1',delta: 2})//关闭当前页面,返回上一页面或多级页面
uni.preloadPage({url: "/pages/test/test"});//预加载页面,是一种性能优化技术。被预载的页面,在打开时速度更快。

你可能感兴趣的:(前端资源,小程序,小程序)