1️⃣ Dev

搭建开发环境大概只需要安装好 Flutter 的 SDK 即可

https://docs.flutter.dev/get-started/install

对于开发Apple系的APP,则还需要安装 XCode(Mac 必装 🫠

其次是IDE的选择,首选万能的VSCode,IDEA需要安装 Flutter & Dart 插件(虽然我用的 IDEA

2️⃣ 关于 Flutter 中的 Flex

这里和HTML有一些区别

3️⃣ 关于CSS属性在Flutter中的平替 & End

可以参考该文档

https://flutter.cn/docs/get-started/flutter-for/web-devs

属性名大部分都是重复的,有前端开发的基础应该很容易就上手了,比较重要的感觉在各类组件的使用上,Flutter中组件都有其对应的用途,且属性是固定的(CSS样式能够随便造,只需要给 Dom元素 指定想要的 Class 就行了)

所以说,看不看上面的文档都无所谓 😎

4️⃣ 关于 Flutter 组件

常用的大概会是这些

Container

差不多就是 Flutter 中的 DIV

FractionallySizedBox

用途:设置子元素相对父元素的 宽 / 高

## Flutter
FractionallySizedBox(
   heightFactor: .8,
   child: Container(
      width: 200,
      color: Colors.red,
      padding: const EdgeInsets.all(10.0)
   )
)

## CSS
height: 80%

Flex

Flex布局没啥好说的 👏

## Flutter
Flex(
   direction: Axis.horizontal,
   mainAxisAlignment: MainAxisAlignment.start
)

## CSS
display: flex;
flex-direction: row;

Align

用途:设置内容相对于容器的位置

Align(
    alignment: Alignment.topLeft
)

Row

用途:子元素横向排列

Row(
  children: []
)

Column

用途:子元素纵向排列

Column(
     children: []
)

Image

用途:引入图片(支持本地图片,网络图片,具体可以查看 Image 中的源代码

Image.asset(
    'images/WechatIMG66.jpeg',
    height: 100,
    width: 100,
    fit: BoxFit.cover,
)

ClipRRect

用途:内容裁剪

这里也可以用 Container 的 `clipBehavior: Clip.hardEdge` 来实现,不过效果不如 ClipRRect

## Flutter
ClipRRect(
    borderRadius: BorderRadius.circular(
         _isHovered ? 10.0 : 20.0),
    child: Image.asset(
        'images/WechatIMG66.jpeg',
        height: 100,
        width: 100,
        fit: BoxFit.cover,
    )
)

## CSS
div {
    border-radius: 10px;
    overflow: hidden;
}

Expanded

用途:显而易见,看代码吧 🤫

Flex(
   direction: Axis.horizontal,
   mainAxisAlignment: MainAxisAlignment.start,
   children: <Widget>[
      Expanded(
         flex: 1
      ),
      Expanded(
         flex: 2
      ),
   ]
)


Ex - ploooosion!