博客
关于我
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/

    你可能感兴趣的文章
    NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
    查看>>
    numpy 或 scipy 有哪些可能的计算可以返回 NaN?
    查看>>
    numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
    查看>>
    numpy 数组与矩阵的乘法理解
    查看>>
    NumPy 数组拼接方法-ChatGPT4o作答
    查看>>
    numpy 用法
    查看>>
    Numpy 科学计算库详解
    查看>>
    Numpy.fft.fft和numpy.fft.fftfreq有什么不同
    查看>>
    numpy.linalg.norm(求范数)
    查看>>
    Numpy.ndarray对象不可调用
    查看>>
    Numpy.VisibleDeproationWarning:从不整齐的嵌套序列创建ndarray
    查看>>
    Numpy:按多个条件过滤行?
    查看>>
    Numpy:条件总和
    查看>>
    numpy、cv2等操作图片基本操作
    查看>>
    numpy中的argsort的用法
    查看>>
    NumPy中的精度:比较数字时的问题
    查看>>
    numpy判断对应位置是否相等,all、any的使用
    查看>>
    Numpy多项式.Polynomial.fit()给出的系数与多项式.Polyfit()不同
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    numpy学习笔记3-array切片
    查看>>