Taro 生命周期相关 API 详解

发布于:2025-07-24 ⋅ 阅读:(15) ⋅ 点赞:(0)

Taro 生命周期相关 API 详解

Taro 作为一款多端统一开发框架,极大地简化了小程序、H5、React Native 等多平台的开发难度。在 Taro 3.x 及以上版本中,推荐使用 React Hooks 风格的生命周期 API,这些 API 让开发者可以像写 React 组件一样,优雅地管理页面和组件的生命周期。本文将详细介绍 Taro 常用的生命周期相关 API,包括 Taro.useDidShowTaro.useDidHideTaro.usePullDownRefreshTaro.useReachBottomTaro.usePageScrollTaro.useShareAppMessageTaro.useShareTimelineTaro.useReadyTaro.useUnload 的用法和应用场景。


1. Taro.useDidShow

作用:监听页面显示(onShow)事件。
应用场景:页面每次显示时执行某些操作,比如刷新数据、统计页面访问等。

用法示例:

import { useDidShow } from '@tarojs/taro';

function MyPage() {
  useDidShow(() => {
    console.log('页面显示了');
    // 可以在这里请求数据或做其他操作
  });

  return <View>内容</View>;
}

2. Taro.useDidHide

作用:监听页面隐藏(onHide)事件。
应用场景:页面每次被隐藏时执行操作,比如暂停定时器、保存状态等。

用法示例:

import { useDidHide } from '@tarojs/taro';

function MyPage() {
  useDidHide(() => {
    console.log('页面隐藏了');
    // 可以在这里暂停动画、保存数据等
  });

  return <View>内容</View>;
}

3. Taro.usePullDownRefresh

作用:监听页面下拉刷新事件。
应用场景:用户下拉页面时刷新数据。

用法示例:

import { usePullDownRefresh, stopPullDownRefresh } from '@tarojs/taro';

function MyPage() {
  usePullDownRefresh(() => {
    // 这里执行刷新操作
    fetchData().then(() => {
      stopPullDownRefresh(); // 刷新完成后停止下拉刷新动画
    });
  });

  return <View>内容</View>;
}

4. Taro.useReachBottom

作用:监听页面触底事件。
应用场景:实现上拉加载更多数据的功能。

用法示例:

import { useReachBottom } from '@tarojs/taro';

function MyPage() {
  useReachBottom(() => {
    // 这里加载更多数据
    loadMoreData();
  });

  return <View>内容</View>;
}

5. Taro.usePageScroll

作用:监听页面滚动事件。
应用场景:实现滚动监听,比如吸顶、懒加载等。

用法示例:

import { usePageScroll } from '@tarojs/taro';

function MyPage() {
  usePageScroll((res) => {
    console.log('页面滚动到', res.scrollTop);
    // 可以根据 scrollTop 做吸顶、显示返回顶部按钮等
  });

  return <View>内容</View>;
}

6. Taro.useShareAppMessage

作用:自定义页面右上角转发内容。
应用场景:用户点击右上角分享按钮时,定制分享的标题、图片、路径等。

用法示例:

import { useShareAppMessage } from '@tarojs/taro';

function MyPage() {
  useShareAppMessage(() => {
    return {
      title: '自定义分享标题',
      path: '/pages/index/index',
      imageUrl: 'https://example.com/share.png'
    };
  });

  return <View>内容</View>;
}

7. Taro.useShareTimeline

作用:自定义分享到朋友圈的内容(仅微信小程序支持)。
应用场景:用户点击分享到朋友圈时,定制分享内容。

用法示例:

import { useShareTimeline } from '@tarojs/taro';

function MyPage() {
  useShareTimeline(() => {
    return {
      title: '分享到朋友圈的标题',
      query: 'a=1&b=2',
      imageUrl: 'https://example.com/timeline.png'
    };
  });

  return <View>内容</View>;
}

8. Taro.useReady

作用:监听页面初次渲染完成(onReady)事件。
应用场景:页面渲染完成后执行某些操作,比如获取节点信息、初始化动画等。

用法示例:

import { useReady } from '@tarojs/taro';

function MyPage() {
  useReady(() => {
    console.log('页面初次渲染完成');
    // 可以在这里获取DOM信息、初始化动画等
  });

  return <View>内容</View>;
}

9. Taro.useUnload

作用:监听页面卸载(onUnload)事件。
应用场景:页面被销毁时清理资源,比如清除定时器、取消网络请求等。

用法示例:

import { useUnload } from '@tarojs/taro';

function MyPage() {
  useUnload(() => {
    console.log('页面被卸载');
    // 清理定时器、取消请求等
  });

  return <View>内容</View>;
}

总结

Taro 的生命周期相关 Hooks API 让开发者可以像写 React 组件一样,优雅地管理页面的各类生命周期事件。合理使用这些 API,可以让你的 Taro 项目结构更清晰、逻辑更分明、代码更易维护。建议在实际开发中,根据页面和业务需求,灵活选择和组合这些生命周期 API。

参考文档:


网站公告

今日签到

点亮在社区的每一天
去签到