Skip to content

Lifecycle API(生命周期)

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

1. App 生命周期

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

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. 小程序组件扩展生命周期

API类型入口说明
onMovedMiniProgramPageLifetimes组件节点位置变更。
onErrorMiniProgramPageLifetimes组件或 App 错误(按上下文桥接)。

7. 示例:滚动 + 分享(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.