Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

面试官:说说微信小程序的生命周期函数有哪些? #13

Open
linwu-hi opened this issue Jul 30, 2023 · 0 comments
Open

Comments

@linwu-hi
Copy link
Owner

面试官:说说微信小程序的生命周期函数有哪些?

微信小程序的生命周期可以分为三部分:应用生命周期、页面生命周期和组件生命周期。下面我会详细介绍每个生命周期的函数及其触发时机。

一、应用生命周期

应用生命周期函数定义在app.js中。

函数名 触发时机
onLaunch 小程序初始化完成时触发(全局只触发一次)
onShow 小程序启动,或从后台进入前台显示时触发
onHide 小程序从前台进入后台时触发
onError 小程序发生脚本错误或API调用报错时触发
onPageNotFound 小程序要打开的页面不存在时触发
onUnhandledRejection 小程序有未处理的Promise拒绝时触发
onThemeChange 系统切换主题时触发

二、页面生命周期

页面生命周期函数在page.js中定义。

函数名 触发时机 常见作用
onLoad 页面加载时触发 用于加载页面数据
onShow 页面显示时触发 页面重新显示时刷新数据
onReady 页面初次渲染完成时触发 获取页面 DOM 节点
onHide 页面隐藏时触发 停止页面动画或计时器等
onUnload 页面卸载时触发 停止网络请求或清理订阅等

三、组件生命周期

组件生命周期函数在component.js中定义。

函数名 触发时机
created 组件实例刚创建时触发
attached 组件进入页面节点树时触发
ready 组件首次渲染完成时触发
moved 组件位置改变时触发
detached 组件离开页面节点树时触发
error 组件方法错误时触发

四、执行顺序

一个典型的完整生命周期顺序为:

  1. 小程序打开:onLaunch -> onShow -> onLoad -> onShow -> onReady

  2. 进入新页面:onHide -> onLoad -> onShow -> onReady

  3. 返回上一页:onUnload -> onShow

  4. 小程序切后台:onHide

  5. 小程序重启:onLaunch -> onShow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant