2022-09-06 uni-app学习笔记(三) uni-app的生命周期:常用应用生命周期和页面生命周期以及示例

本文介绍了uni-app的生命周期,包括应用生命周期和页面生命周期,并通过示例详细讲解了如何使用onPageNotFound处理404错误以及在页面加载和下拉刷新时的钩子函数onLoad和onPullDownRefresh的应用。最后,概述了uniapp项目文件的结构,如pages.json和App.vue的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.uniapp生命周期的引入

学习一个工具的核心目的是为了解决核心业务的逻辑问题,让其在合适的时机做合适的事情
即,在页面运行过程中,各个阶段的会对函数就是页面中的时机,也称作"生命周期钩子函数"

uniapp的生命周期完整支持vue的生命周期,同时新增了uniapp自己的应用生命周期页面生命周期

2.应用生命周期

官网位置:https://uniapp.dcloud.net.cn/collocation/App.html#applifecycle
在这里插入图片描述

3.页面生命周期

官网位置:https://uniapp.dcloud.net.cn/tutorial/page.html#lifecycle
在这里插入图片描述

4.应用生命周期的应用示例:onPageNotFound
4.1.创建404.vue页面:pages>创建页面>404.vue

在这里插入图片描述
在App.vue中添加应用生命周期钩子函数onPageNotFound
应用生命周期在App.vue中设置

onPageNotFound:function(){
	uni.navigateTo({
		url:"./pages/404/404"
	})
}

*此时page.json会自动更新404.vue的路径

,{
       "path" : "pages/404/404",
       "style" :                                                                                    
       {
           "navigationBarTitleText": "页面不存在",//修改标题文本
           "enablePullDownRefresh": false
       }      
   }
4.2.运行到小程序并修改成错误路径

在这里插入图片描述
结果:自动跳转到404.vue
在这里插入图片描述
说明成功触发了应用生命周期onPageNotFound

5.页面生命周期的应用示例
5.1.钩子函数onLoad:监听页面加载

404.vue:实现当前页面1s后自动跳转回首页index

onLoad(){
	const timer=setTimeout(()=>{
		clearTimeout(timer);
		uni.navigateTo({
			/*此处路径不能以点开始,多这个"."将导致跳转失败!"*/
			// url:"./pages/index/index"
			url:"/pages/index/index"
		});
	},1000);
}
5.2.钩子函数onPullDownRefresh:监听用户下拉动作,一般用于下拉刷新
  • 先在pages.json中配置index路径,使之可以下拉
{
	"path": "pages/index/index",
	"style": {
		"navigationBarTitleText": "uni-app",
		"enablePullDownRefresh":true//可以下拉
	}
}
  • 然后在index.vue中写钩子函数onPullDownRefresh

页面生命周期在index.vue中设置

onPullDownRefresh() {
	console.log("页面下拉了...")
},
  • 运行>在小程序中运行,在微信开发者平台中下拉页面,触发钩子函数
    在这里插入图片描述
6.总结
uniapp的生命周期分为应用生命周期,和页面生命周期,

应用生命周期的例子onPageNotFound:
先在pages文件夹中新建一个404文件,然后在pages.json中会自动创建该文件的路径
在App.vue中写onpagenotfound的方法,让它1s后自动跳转到404页面
使用到了uni.navigateTo()用于页面跳转,url中的路径不要写成"./pages/404/404",多这个点会导致跳转失败,且不报错

在微信开发者平台上编译是从"普通编译""错误编译",即让它故意报错
从而触发上述应用生命周期钩子函数,报错后会自动跳转到404.vue(里面随便写点东西)

页面生命周期的例子onLoad,还有一个自动下拉时触发的页面生命周期
这个生命周期是写在index.vue里面的,直接在data和methods同级别的花括号中接着写onLoad即可

页面生命周期例子onPullDownRefresh,需要在pages.json中把index路径的enablePullDownRefresh"=true
然后就可以调试了,比如在钩子函数中console.log了一个语句,下拉时就会输出该语句
7.知识点
uniapp项目文件介绍
  • pages.json:对uniapp进行全局配置,决定页面文件的路径,窗口样式,原生的导航栏,底部的原生tabbar等等
...
{
	"path": "pages/index/index",
	"style": {
		"navigationBarTitleText": "uni-app",
		"enablePullDownRefresh":true//可以下拉
	}
}
  • App.vue是根组件,所有页面都是在此处切换,是页面入口文件,在这里调用应用生命周期钩子函数
onLaunch: function() {
	console.log('App Launch')
},
onShow: function() {
	console.log('App Show')
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值