Flutter 中

Get状态管理库中,GetxController是一个用于管理状态和逻辑的基类。它具有一系列的生命周期方法,用于在不同的阶段执行相关的操作。下面是GetxController的生命周期方法及其执行顺序:

  1. onInit(): 这个方法在GetxController创建并加入到管理器时调用。你可以在这里进行一些初始化操作,如初始化变量、订阅流等。
  2. onReady(): 这个方法在GetxController被异步加载后调用。你可以在这里执行一些异步操作,如网络请求、数据库读取等。需要注意的是,这个方法只会在第一次加载时调用,后续页面刷新不会再触发。
  3. onClose(): 这个方法在GetxController被永久关闭时调用,一般是页面销毁时。你可以在这里进行资源释放、取消订阅等清理操作,以防止内存泄漏。

除了生命周期方法,GetxController还提供了一些其他常用的方法和属性,例如:

  • update(): 用于通知管理器状态变化,更新UI。
  • ever(): 用于监听某个变量或Rx值的变化,类似于Stream中的listen方法。
  • once(): 监听某个变量或Rx值的第一次变化,之后不再监听。
  • debounce(): 在指定时间间隔内连续多次变化时,只执行最后一次变化。
  • interval(): 在指定时间间隔内连续多次变化时,每隔一段时间执行一次。

使用GetxController的示例代码:

复制代码
import 'package:get/get.dart';

class MyController extends GetxController {
  var count = 0;

  @override
  void onInit() {
    print('onInit called');
    super.onInit();
  }

  @override
  void onReady() {
    print('onReady called');
    super.onReady();
  }

  @override
  void onClose() {
    print('onClose called');
    super.onClose();
  }

  void increment() {
    count++;
    update(); // 通知状态变化,更新UI
  }
}

在页面中使用控制器:

复制代码
class MyPage extends StatelessWidget {
  final MyController myController = Get.put(MyController());

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('My Page'),
      ),
      body: Center(
        child: Obx(() => Text('Count: ${myController.count}')),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () => myController.increment(),
        child: Icon(Icons.add),
      ),
    );
  }
}
相关推荐
风华圆舞8 小时前
在 Flutter 鸿蒙项目里接入语音识别的完整思路
flutter·语音识别·harmonyos
风华圆舞10 小时前
鸿蒙 + Flutter 下如何让 HarmonyOS 能力真正服务于 AI 体验
人工智能·flutter·harmonyos
BreezeDove12 小时前
【Android】Flutter3.35项目启动超时问题
android·flutter
风华圆舞12 小时前
鸿蒙 MICROPHONE 权限在 Flutter 项目里怎么处理
flutter·华为·harmonyos
愚者Pro1 天前
切换本地 Flutter SDK 版本
flutter
TT_Close1 天前
别再复制旧 Flutter 工程了,真正拖慢你的不是业务代码
flutter·npm·visual studio code
风华圆舞1 天前
鸿蒙 + Flutter 下 AI 助手为什么要支持流式输出
人工智能·flutter·harmonyos
风华圆舞1 天前
鸿蒙 + Flutter 下 AI 页面的状态协同设计
人工智能·flutter·harmonyos
风华圆舞1 天前
鸿蒙语音播报功能 的 Flutter 侧封装思路
flutter·华为·harmonyos
brycegao3211 天前
Flutter 国际化富文本解决方案:基于双层占位符的轻量化图文混排方案
flutter·国际化·i18n·富文本·rtl·移动端工程架构