Flutter:减少小部件样板

您可能听说过Flutter。 您可能知道小部件的功能强大。 但是它们有一个问题:它们需要大量样板。

让我们分析我们的典型小部件:

一个简单的带有参数的Text有11行 由于使用了类,我们有很多重复和不必要的代码位:

  • 每个参数声明两次
  • 小部件名称也被写入两次
  • finalsuper(key: key)是多余的。 如果没有这些组件,我们将永远不需要小部件。

功能将是一个完美的选择。 它使语法短得多:

差不多完美吧?

好吧,不。 函数还有另一个问题:函数未插入Widget树中,因此永远不会与Element关联。

这会导致一系列全新的问题,包括性能问题或状态未正确处理。 看看函数和类有什么区别? 了解更多信息。

…但是,如果能正常工作怎么办?


引入functional_widget ,这是一个代码生成器,可以从一个函数生成Widget类。

functional_widget | 飞镖

functional_widget Dart程序包–一个代码生成器,可从其实现中生成窗口小部件类,例如:

pub.dartlang.org

只需将您的小部件编写为如前所示的函数,并用@widget装饰:

然后,代码生成器将使用函数名称(首字母大写)创建一个供您使用的类:

注意BuildContextKey在函数原型中是如何不存在的:它们是可选的。 生成的类仍将具有它们,但是您不必编写不需要的东西。

我不明白,这有什么意义?

基本上,这意味着您现在可以编写函数而不是类,但是没有前面列出的问题。 因此,您将获得两全其美的好处:简洁实用。

听起来不错? 继续尝试一下!

functional_widget | 飞镖包

functional_widget Dart程序包–一个代码生成器,可从其实现中生成窗口小部件类,例如:

pub.dartlang.org