我对 Flutter Framework 中的 Dart 代码感到困惑

I have confusion about Dart code in Flutter Framework

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('My First App'),
        ),
        body: Text('This is my default text'),
      ),
    );
  }
}

我最近开始学习 Flutter 框架,这让我很困惑,你能解释一下上面这段代码的部分吗,那是什么 BuildContextMaterialApp(它是构造函数还是 class,?), 它的参数,我试着从他们的文档中学习,但他们对我来说太混乱了,我从这个 class 中编写的代码中知道的是,构建方法 returns 一个小部件,和脚手架是某种有助于布局的预定义代码,例如 bootstrap 有助于 CSS

让我们一行一行地看。

class MyApp extends StatelessWidget {

在这一行中,您要声明一个 class MyApp,它扩展了 Stateless 小部件 class。这意味着 MyApp 将具有无状态小部件的功能以及您要添加到其中的代码位。

  Widget build(BuildContext context) {

在这里定义构建方法。 Widget 需要一个 build 方法,这就是 flutter 知道如何构建 widget 并显示它的方式。构建方法接收一个 BuildContext 参数,该参数是小部件在小部件树中的位置的句柄。

    return MaterialApp(

构建方法returns MaterialApp 小部件。其实MaterialApp()就是MaterialApp小部件的构造函数。

      home: Scaffold(
        appBar: AppBar(
          title: Text('My First App'),
        ),
        body: Text('This is my default text'),

MaterialApp 的构造函数有一个 home 和一个 body 参数。在这里,您将 Scaffold 小部件传递给 Home 参数。 Scaffold 小部件构造函数 (Scaffold()) 有一个 appBar 参数,它接收一个 Widget(在本例中,Widget 是 AppBar)。 AppBar 构造函数有一个 title 参数,它接收一个 Text 小部件。并且 body 参数还接收一个 Text 小部件。

      ),
    );
  }
}