Flutter GetX 4.7.2 发布:被严重低估的强大框架

Flutter GetX 4.7.2 发布:被严重低估的强大框架

视频

youtu.be/BAgTUSbVHlI

www.bilibili.com/video/BV1oH...

前言

原文 GetX 框架:简洁、高效的 Flutter 开发工具

先说结论:感谢 GetX 让我节省了很多代码时间,这是一款被严重低估的 Flutter 组件,被认为设计的过于简单、没有深度、无人维护啥啥的。

很多开发者在讨论 GetX 是否已经放弃维护,但实际上并非如此。GetX 目前正集中精力开发 5.0 版本,同时也在维护 4.x 版本,最新更新已达到 4.7.2。社区内一些人常常拿其他状态管理库来与 GetX 对比,然而作为一个使用过 Bloc、Provider 和 Riverpod 的开发者,我认为 GetX 完全不逊色于它们,而且使用起来非常简单。

值得强调的是,GetX 本身是一个工具库,涵盖了状态管理、依赖注入、导航、扩展、HTTP 通信、多语言、对话框和防抖等多种功能。这些特性使得 GetX 在开发中非常高效和便捷。

参考

GetX 优点

社区热度 Github Star 10.6K

bloc 12k , riverpod 6.5k

所以说 getx 社区认可度还是可以的

github.com/jonataslaw/...

github.com/jonataslaw/...

非常多的人参与到这个项目中。

GetBuilder 手动触发方式性能更好

试图 view

dart 复制代码
  // 滚动图
  Widget _buildBanner(BuildContext context) {
    return GetBuilder<ProductDetailsController>(
        id: "product_banner",
        tag: tag,
        builder: (_) {
          return CarouselWidget(
            // 打开大图预览
            onTap: controller.onGalleryTap,
            // 图片列表
            items: controller.bannerItems,
            // 当前索引
            currentIndex: controller.bannerCurrentIndex,
            // 切换回调
            onPageChanged: controller.onChangeBanner,
            // 高度
            height: 190.w,
            // 指示器圆点
            indicatorCircle: false,
            // 指示器位置
            indicatorAlignment: MainAxisAlignment.start,
            // 指示器颜色
            indicatorColor: context.colors.scheme.secondary,
          );
        }).backgroundColor(context.colors.scheme.surface);
  }

控制器 触发更新

dart 复制代码
  // Banner 切换事件
  void onChangeBanner(int index, reason) {
    bannerCurrentIndex = index;
    update(["product_banner"]); // 手动刷新 Banner
  }

全自动依赖管理视图、控制器创建释放

防止 StatefulWidgets 滥用

采用 GetBuilder + StatelessWidget 的方案非常干净。

dart 复制代码
class ApplyPromoCodePage extends StatelessWidget {
  const ApplyPromoCodePage({
    super.key,
    required this.onApplyCouponCode,
  });

  // 主视图
  Widget _buildView(BuildContext context) {
    return ...
  }

  @override
  Widget build(BuildContext context) {
    return GetBuilder<ApplyPromoCodeController>(
      init: ApplyPromoCodeController(),
      id: "apply_promo_code",
      builder: (_) {
        return _buildView(context);
      },
    );
  }
}

轻松多语言

同构 tr 扩展来调用

dart 复制代码
TextWidget.h4(LocaleKeys.orderConfirmationTitle.tr).paddingBottom(10.w),

丰富工具库

  • 依赖管理
    • Get.put
    • Get.find
  • 路由操作
  • HTTP 通讯
    • GetConnect
  • 对话框
    • Get.dialog
    • Get.snackbar
  • 响应式
    • Rx
    • Obx()
  • 多语言
  • 防抖和节流
    • Debounce
    • Throttle
  • 路由中间件
  • 服务Service
  • GetX 扩展
    • 颜色
    • 文本
    • 图标
    • 边距

上手简单,配合猫哥插件更省心

marketplace.visualstudio.com/items?itemN...

perl 复制代码
根据 x3 图片自动生成 x1 x2 图片
生成 图片 svg 常量列表 files.txt
生成规范目录 common
生成 GetBuilder + GetView 的代码
生成 StatefulWidget + GetBuilder + GetView 的代码
生成 controller、view、widgets、bindings、state、index 完整的代码
生成 路由声明定义文件

代码

github.com/jonataslaw/...

小结

本文深入探讨了 Flutter GetX 3.7.2 的特点与优势,特别是它在自动依赖管理、简洁语法以及多种开发工具方面的表现。作为一个被严重低估的框架,GetX 为 Flutter 开发者提供了高效的解决方案,帮助他们快速构建功能丰富的应用程序。希望本文能够帮助更多开发者了解并应用 GetX 框架,提升开发效率。

感谢阅读本文

如果有什么建议,请在评论中让我知道。我很乐意改进。


© 猫哥 ducafecat.com

end

相关推荐
星秋Eliot13 小时前
Flutter多线程
flutter·async/await·isolate·flutter 多线程
农夫三拳_有点甜16 小时前
Flutter Assets & Media
flutter
林间风雨1 天前
flutter项目 -- 换logo、名称 、签名、打包
flutter
SoaringHeart2 天前
Flutter组件封装:页面点击事件拦截
前端·flutter
tangweiguo030519872 天前
Flutter与原生混合开发:实现完美的暗夜模式同步方案
android·flutter
程序员老刘2 天前
CTO紧急叫停AI编程!不是技术倒退,而是...
flutter·ai编程
leazer2 天前
Flutter TabBar 字体缩放动画抖动问题及优化方案
flutter
yuanpan2 天前
认识跨平台UI框架Flutter和MAUI区别,如何选。
flutter·ui·maui
无知的前端2 天前
一文精通-Flutter 状态管理
flutter
阿笑带你学前端2 天前
Drift数据库开发实战:类型安全的SQLite解决方案
前端·flutter