GetX 插件的使用

443 阅读1分钟
  • 1.路由
  • 2.状态管理; 操作界面
  • userFolder 建立子文件夹;
  • usePrefix 文件进行(_)下划线处理;
  • addBinding 增加bind文件; WX20220525-134247@2x.png
  • addLifecyle自动添加logic 处onReady()和onClose()方法 WX20220525-134645@2x.png register_page_tap1页面跳转代码;
Get.toNamed('/test',arguments: {'id':'155****8890'});
  • 路由:
GetPage(
  name: AppRoutes.TEST,
  page: () =>  RegisterPageTap2Page(),
  binding: RegisterPageTap2Binding()
),

五个文件:

  • 新建index.dart 导出头文件以供其他文件使用
library register_page_tap2;
export 'register_page_tap2_binding.dart';
export 'register_page_tap2_logic.dart';
export 'register_page_tap2_state.dart';
export 'register_page_tap2_view.dart';
  • register_page_tap2_binding.dart 绑定Logic put 变 Find
import 'package:get/get.dart';
import 'register_page_tap2_logic.dart';

class RegisterPageTap2Binding extends Bindings {
  @override
  void dependencies() {
    Get.lazyPut(() => RegisterPageTap2Logic());
  }
}
  • register_page_tap2_logic.dart 业务逻辑处理页面
import 'package:get/get.dart';
import 'register_page_tap2_state.dart';

class RegisterPageTap2Logic extends GetxController {
  final RegisterPageTap2State state = RegisterPageTap2State();
  @override
  void onReady() {
    // TODO: implement onReady
    super.onReady();
    state.obj = Get.arguments['id'];
    print(state.obj);
  }

  @override
  void onClose() {
    // TODO: implement onClose
    super.onClose();
  }
}
  • register_page_tap2_state.dart 定义参数页面
import 'package:get/get.dart';
class RegisterPageTap2State {
  RegisterPageTap2State() {
    ///Initialize variables
  }
  final _obj = ''.obs;
  set obj(value) => _obj.value = value;
  get obj => _obj.value;
}
  • register_page_tap2_view.dart (UI 展示界面)
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'register_page_tap2_logic.dart';

class RegisterPageTap2Page extends StatelessWidget {
  final logic = Get.find<RegisterPageTap2Logic>();
  final state = Get.find<RegisterPageTap2Logic>().state;
  
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Obx(() => Text("${state.obj}")),///状态管理
      ),
      body: const Center(
        child: Text('HELLO WORD'),
      ),
    );
  }
}