博客
关于我
Flutter开发初探
阅读量:419 次
发布时间:2019-03-06

本文共 1413 字,大约阅读时间需要 4 分钟。

Flutter学习感想

目前跨端开发比较热门的就是 React Native 和 Flutter 了,到底该选哪门技术似乎也快成了大前端圈的一个热门话题。对于web前端来说,基于web生态的 React Native 应该是一个更加顺畅而自然的选择;但 Flutter 让人动心的地方就是高性能和 跨端UI一致性。而 React Native 发展不太明朗和 Flutter 越发成熟的走势对比促使我从观望的心态转为加入 Flutter。

一、初步体验

这里主要就是记录一下学习 Flutter 的一些感想和看法:

  • 包管理

    Flutter 的包管理和传统的 npm package管理有很大不同。 pubspec.yaml 文件的作用类似于 package.json ,而.yaml 格式也比 json 方便。但是不能用命令行自动安装包却让习惯了 npm 的我觉得麻烦。因为 Flutter 安装依赖包的流程是:

    • 打开网站;
    • 搜索需要的包,得到包的名称和版本;
    • 把包名称和版本填入 pubspec.yaml ,最后才开始下载包。

    这个流程虽然可靠,但让我觉得不够高效。习惯了 npm 的直接命令行安装包,让人觉得麻烦。也许未来 Flutter 能添加命令行工具来自动处理包管理,直接指定包名或版本号就可以下载对应的依赖包。

  • 布局和样式

    Flutter 的布局和样式确实有其独特的方式。与 React Native 的 JSX 或 XML 格式不同, Flutter 更注重 widget 化和 Dart 的热重载特性。

    • 热重载:修改代码后只需重新运行一次,会自动刷新 UI,这大大提升了开发效率。
    • 布局组件:一切都是 widget ,但很多常见的样式属性(如 Center、Align、Padding)需要通过嵌套来实现。这种方式虽然灵活,但也导致了代码嵌套严重,且样式复用困难。
    • 期待 DSL 框架:希望未来能有更适配的布局 DSL ,让布局和样式更直观,减少嵌套,提升代码可读性。
  • JSON 处理

    Dart 作为强类型语言,对 JSON 处理有一定的限制。

    • 类定义:需要为每个 JSON 结构定义对应的 Dart 类,这与 JavaScript 或 TypeScript 的弱类型语言相比显得繁琐。
    • 工具支持:虽然有一些工具库可以简化 JSON 处理流程,例如通过脚本生成 Dart 模型类,但这仍然需要手动操作,缺乏自然流畅。
    • 改进建议:希望 Flutter 能提供更智能的 JSON 支持,类似于 React Native 中的 JSON 模型。
  • 状态管理

    Flutter 的状态管理主要依赖于 setState 和 Provider 框架。

    • ** setState**:简单易学,适合单组件管理状态。
    • 跨组件通信:需要借助 Provider 或 Redux 等库,目前 Redux 的样板代码较多,不够简洁。
    • 期待函数式状态管理:希望 Flutter 能提供类似 React Hooks 的状态管理方式,让状态管理更加简洁和灵活。
  • 二、总结

    说了这么多,本质就是为什么 Flutter 不向以 React 为代表的 web 生态看齐?更大的原因是 Flutter 的很多理念和开发模式其实远远落后于 React 。这也是为什么习惯 React/Vue 的 web 前端 对 Flutter 感觉很别扭不顺手的原因了。

    转载地址:http://pcduz.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | 基于YOLO11的车体部件检测与分割
    查看>>
    OpenCV与AI深度学习 | 基于YoloV11自定义数据集实现车辆事故检测(有源码,建议收藏!)
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8 + BotSORT实现球员和足球检测与跟踪 (步骤 + 源码)
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8实现高级目标检测和区域计数
    查看>>
    VS2003 Front Page Server Extension
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8的停车对齐检测
    查看>>
    OpenCV与AI深度学习 | 基于YoloV8的药丸/片剂类型识别
    查看>>
    OpenCV与AI深度学习 | 基于YOLO和EasyOCR从视频中识别车牌
    查看>>
    OpenCV与AI深度学习 | 基于图像处理的火焰检测算法(颜色+边缘)
    查看>>
    OpenCV与AI深度学习 | 基于拉普拉斯金字塔实现图像融合(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 基于改进YOLOv8的景区行人检测算法
    查看>>
    OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案
    查看>>
    OpenCV与AI深度学习 | 基于深度学习的轮胎缺陷检测系统
    查看>>
    OpenCV与AI深度学习 | 如何使用YOLO-World做目标检测
    查看>>
    OpenCV与AI深度学习 | 如何使用YOLOv9分割图像中的对象
    查看>>
    OpenCV与AI深度学习 | 如何使用YOLOv9检测图片和视频中的目标
    查看>>
    OpenCV与AI深度学习 | 如何在 Docker 容器中使用 GPU
    查看>>
    OpenCV与AI深度学习 | 实战 | OpenCV中更稳更快的找圆方法--EdgeDrawing使用演示(详细步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | OpenCV传统方法实现密集圆形分割与计数(详细步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)
    查看>>