Skip to content

Lifecycle API(生命周期)

wevu 生命周期 API 都需要在 setup() 的同步阶段调用。

1. App 生命周期

API类型入口说明
onLaunchDefineAppOptions小程序 App 启动。
onShowRuntimeAppApp 进入前台。
onHideRuntimeAppApp 进入后台。
onErrorRuntimeApp运行时错误回调。
onPageNotFoundRuntimeApp路由未命中。
onUnhandledRejectionRuntimeApp未处理 Promise rejection。
onThemeChangeRuntimeApp系统主题变化。
onMemoryWarningRuntimeApp内存告警回调。

2. 页面与组件通用生命周期

API类型入口说明
onLoadRuntimeInstance页面参数加载(页面常用)。
onReadyRuntimeInstance首次渲染完成。
onShowRuntimeInstance页面/组件显示。
onHideRuntimeInstance页面/组件隐藏。
onUnloadRuntimeInstance页面卸载。

3. 组件渲染阶段(Vue 风格)

API类型入口说明
onBeforeMountRuntimeInstance挂载前。
onMountedRuntimeInstance挂载后。
onBeforeUpdateRuntimeInstance更新前。
onUpdatedRuntimeInstance更新后。
onBeforeUnmountRuntimeInstance卸载前。
onUnmountedRuntimeInstance卸载后。
onActivatedRuntimeInstance激活(缓存场景)。
onDeactivatedRuntimeInstance失活(缓存场景)。
onErrorCapturedRuntimeInstance捕获子树错误。
onServerPrefetchRuntimeInstance兼容 Vue 语义的预取钩子。

4. 小程序特有页面事件

API类型入口说明
onPageScrollPageFeatures页面滚动。
onPullDownRefreshPageFeatures下拉刷新。
onReachBottomPageFeatures触底事件。
onRouteDonePageFeatures页面路由完成。
onTabItemTapPageFeaturesTab 点击。
onResizePageFeatures视图尺寸变化。

5. 带返回值的页面钩子

API类型入口说明
onShareAppMessagePageFeatures自定义转发内容。
onShareTimelinePageFeatures自定义朋友圈分享内容。
onAddToFavoritesPageFeatures添加收藏。
onSaveExitStatePageFeatures离开时保存状态。

6. 小程序组件生命周期(lifetimes / pageLifetimes)

6.1 官方生命周期清单(组件侧)

分类官方生命周期
lifetimescreated / attached / ready / moved / detached / error
pageLifetimesshow / hide / resize / routeDone

6.2 Wevu 对应能力(组合式 + 桥接)

官方生命周期Wevu 对应能力说明
lifetimes.created组件注册时内部桥接(无独立 onCreated Hook)已覆盖;可继续使用原生 lifetimes.created
lifetimes.attached组件注册时内部桥接 + onMounted(组合式)已覆盖;常用组合式写法是 onMounted
lifetimes.readyonReady已覆盖。
lifetimes.movedonMoved已覆盖。
lifetimes.detached组件注册时内部桥接 + onBeforeUnmount/onUnmounted已覆盖。
lifetimes.erroronError已覆盖。
pageLifetimes.showonShow已覆盖。
pageLifetimes.hideonHide已覆盖。
pageLifetimes.resizeonResize已覆盖。
pageLifetimes.routeDoneonRouteDone已覆盖(微信官方基础库 2.31.2+)。

7. 小程序组件扩展 Hook(组合式)

API类型入口说明
onAttachedRuntimeInstance组件 attached 时触发(对应 lifetimes.attached)。
onDetachedRuntimeInstance组件 detached 时触发(对应 lifetimes.detached)。
onMovedMiniProgramPageLifetimes组件节点位置变更。
onErrorMiniProgramPageLifetimes组件或 App 错误(按上下文桥接)。
onShowRuntimeInstance组件在页面 show 时触发(由 pageLifetimes.show 桥接)。
onHideRuntimeInstance组件在页面 hide 时触发(由 pageLifetimes.hide 桥接)。
onResizePageFeatures组件所在页面 resize 时触发(由 pageLifetimes.resize 桥接)。
onMountedRuntimeInstance组件 attached 后触发(对应 lifetimes.attached)。
onBeforeUnmountRuntimeInstance组件 detached 前触发(对应 lifetimes.detached)。
onUnmountedRuntimeInstance组件 detached 后触发(对应 lifetimes.detached)。
onRouteDonePageFeatures页面路由动画完成时触发(微信官方基础库 2.31.2+)。

8. 示例:滚动 + 分享(script setup)

vue
<script setup lang="ts">
import { onPageScroll, onShareAppMessage, onShow, ref } from 'wevu'

// [TS-only] 此示例无专属语法,TS/JS 写法一致。
const scrollTop = ref(0)

onShow(() => {
  console.log('page show')
})

onPageScroll((e) => {
  scrollTop.value = e.scrollTop
})

onShareAppMessage(() => ({
  title: 'wevu 页面分享',
  path: '/pages/index/index',
}))
</script>

<template>
  <view>scrollTop: {{ scrollTop }}</view>
</template>
vue
<script setup>
import { onPageScroll, onShareAppMessage, onShow, ref } from 'wevu'

const scrollTop = ref(0)

onShow(() => {
  console.log('page show')
})

onPageScroll((e) => {
  scrollTop.value = e.scrollTop
})

onShareAppMessage(() => ({
  title: 'wevu 页面分享',
  path: '/pages/index/index',
}))
</script>

<template>
  <view>scrollTop: {{ scrollTop }}</view>
</template>

Released under the MIT License.