为什么Flutter放弃xml而使用代码写布局

在Flutter的Github的Issue上有人提出了一个问题:Consider JSX-like syntax inside dart code。问题传送门

这让我想起之前曾经有人问

为什么Flutter放弃xml而使用代码写布局?

对于这个问题,我正好有一些思考,借助这篇文章说说我的看法。

我认为Flutter有必要舍弃xml,使用代码写布局。因为使用代码来组织布局,会是未来的新趋势,至少是一个方向。

已有语言尝试通过代码组织布局

用相对现代化的语言Kotlin写Android App时,我发现JetBrains搞了一个gradle插件用来支持在代码里写布局。可见Kotlin是支持和提倡用DSL代码来写布局的。

链接里的issue讨论中提到JSX,JSX的理念我赞同(刚刷了一篇文章,文中提到,组件模板和组件逻辑分离让问题复杂化了,应该让模板和组件关联),flutter现在也是朝这个方向来的。

和Hot Reload特性搭配

Flutter舍弃xml使用代码描述布局,能更方便的和Dart的hot reload特性配合使用,代码改动能立刻反映布局变化。

后续的资源支持

之前参加flutter技术分享,我问过这个问题,谷歌工程师给的答复是,后续会进一步增强Dart的语言特性,让代码组织widget tree起来更易读更简洁。比如Dart2比Dart1多了一个特性:可以省略new关键词。

说个题外话,他们还透露了目前他们花了大量精力在减少开发Flutter依赖包的大小上,目标是把在安卓的包从8M减到5M, iOS的从16M减到9M左右。

未来肯定会出现支持布局和语法高亮的Dart插件,让开发人员阅读布局代码更舒适。

查阅的资料

为什么要引入 JSX 这种语法(https://hulufei.gitbooks.io/react-tutorial/content/jsx.html

Flutter中文社区(https://flutter-io.cn/)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180630G0YLFX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券