super和Key在颤振中起什么作用?

gee*_*ano 4 dart flutter

飞镖类中超级关键字和关键词做什么?下面的代码是一个示例:

class CardTitle extends StatelessWidget {
  final String title;

  const CardTitle(this.title, **{Key key}**) : **super(key: key)**;
Run Code Online (Sandbox Code Playgroud)

Hus*_*lah 6

Keys用作 Widgets、Elements 和 SemanticsNodes 的标识符。大多数时候您不需要使用 Keys,框架会为您处理它并在内部使用它们来区分小部件。有关它们的更多信息,请参见:https : //flutter.dev/docs/development/ui/widgets-intro#keys

至于Super关键字:

我们在您的示例中看到 CardTitle 小部件扩展了超类 statelesswidget 并且在其构造函数中,“:”开始了“初始化列表”,这是一个逗号分隔的表达式列表,在超类的构造函数之前执行,因此也在构造函数主体之前执行。

在您问题的示例中,传递给构造函数的 key 参数被转发到超类的未命名构造函数的命名参数 key。


Dan*_*eny 5

super用于调用基类的构造函数。因此,在您的示例中,的构造函数CardTitle正在调用的构造函数StatelessWidget

Key是Flutter中用于标识窗口小部件的一种类型,并允许Flutter知道何时在树中移动的窗口小部件与先前在不同位置的窗口小部件相同。这里有一个有关按键的很好的视频:https : //www.youtube.com/watch?v=kn0EOS-ZiIc