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

    你可能感兴趣的文章
    python中base64编码与解码
    查看>>
    python中break怎么用_详解Python中break语句的用法
    查看>>
    python中del函数的垃圾回收
    查看>>
    Python中DrissionPage的详细解析与实战
    查看>>
    python中enumerate、变量类型转换
    查看>>
    python中execute是啥_python – 为什么“c.execute(…)”打破循环?
    查看>>
    python中exit和break区别_Python中exit()和sys.exit()之间的区别
    查看>>
    python中h5的用法
    查看>>
    python中http协议编程_HTTP编程
    查看>>
    python中if的效率_python中关于if-else使用性能的一点感悟
    查看>>
    python中import os_Python:相对导入与绝对导入(import)、os.path、__file__
    查看>>
    python中is和==操作符
    查看>>
    python中range()函数的返回值是多少?
    查看>>
    Python中range对象的使用以及打印九九乘法表
    查看>>
    Python中reshape函数参数-1的意思?
    查看>>
    Python中set.discard和set.remove方法之间的运行时差异?
    查看>>
    Python接口自动化测试企业级实战
    查看>>
    python中tkinter中value_输入字段中的python Tkinter get()值
    查看>>
    Python中wx.FlexGridSizer
    查看>>
    Python中xPath技术和BeautifulSoup的使用
    查看>>