【问题标题】:What is the difference between GetMaterialApp of GetX and MaterialApp of Flutter?GetX 的 GetMaterialApp 和 Flutter 的 MaterialApp 有什么区别?
【发布时间】:2022-10-15 23:38:48
【问题描述】:

GetX 的 GetMaterialApp 和 Flutter 的 MaterialApp 有什么区别?

我来自 C++,我们从父级继承然后对其进行扩展,但根据文档,这里是:

https://pub.dev/packages/get

注意:这并没有修改Flutter的MaterialApp,GetMaterialApp不是修改后的MaterialApp,它只是一个预先配置好的Widget,它有默认的MaterialApp作为child。您可以手动配置它,但绝对没有必要。GetMaterialApp 将创建路线,注入它们,注入翻译,注入路线导航所需的一切。如果只使用 Get 进行状态管理或依赖管理,则无需使用 GetMaterialApp。GetMaterialApp 对于路线、小吃店、国际化、底部工作表、对话框以及与路线和缺少上下文相关的高级 API 是必需的。

这看起来好像 GetMaterialApp 内部调用了 MaterialApp 的函数,并提供了用户的语法糖来避免 MaterialApp(?)

我的理解正确吗?

但是,这句话似乎不是在谈论继承(?)。

这并没有修改Flutter的MaterialApp,GetMaterialApp并不是修改后的MaterialApp,它只是一个预先配置好的Widget,它有默认的MaterialApp作为child。

【问题讨论】:

    标签: flutter dart flutter-getx


    【解决方案1】:

    Getx包中的GetMaterialApp可以这样理解

    MaterialApp + Getx 属性 = GetMaterialApp

    如果你翻看GetMaterialApp的源码,你会发现只是一个属性与MaterialApp's相同的类,而这些属性只是链接到原来的MaterialApp,加上自定义的属性仅限于Getx,因此结果(GetMaterialApp)实际上是MaterialApp 加上Getx 属性(顺便说一下,就像页面,initialBinding...)。

    这句话:

    这并没有修改Flutter的MaterialApp,GetMaterialApp不是修改后的MaterialApp,它只是一个预先配置好的Widget,它有默认的MaterialApp作为child。

    是的,它从字面上继承了MaterialApp 所以GetMaterialApp 中编写的属性获得了相同的功能和能力......,来自原始MaterialApp 除了定制的属性。

    希望这能给你一个更好的方法。 您可以查看源代码,您将更好地了解Getx 的实际作用。

    【讨论】:

      猜你喜欢
      • 2018-12-06
      • 1970-01-01
      • 2022-11-27
      • 2018-12-21
      • 2022-08-02
      • 2023-01-26
      • 2022-07-01
      • 2021-09-06
      • 2019-06-21
      相关资源
      最近更新 更多