分享试图建立起 —— 对 Flutter 的初次印象、对 Flutter 世界的 Mental Model、对 Flutter 文档的宏观认知。


按照 Flutter 文档一步步操作即可,最后运行 flutter doctor,查看是否全部打勾。
检查项第 1 项,安装完 Android Studio 后打开,根据提示操作即可完成。最后一项,运行红字命令即可。

学习开发阶段,主要关注 Development 即可。

前 4 大项:起步、教程、开发、测试。

后 4 大项:性能、发布、资源、参考。

推荐页面列表。
跟着走一遍,可以建立对 Flutter 的初步认知与兴趣,非常推荐。

Flutter 技术架构的大体介绍。

Flutter 共有 3 个核心概念:1. 一切都是微件、2. 搭建微件、3. 处理用户交互。
其中 "一切都是微件" 又有两个子概念:① 组合优于继承、② 多层蛋糕很好吃。

Button Menu,或是 Font、Color,甚至 Padding —— 在 Flutter 的世界里,它们都是微件,微件可以是任何东西。

Flutter 从 React 中汲取了很多思想,"组合优于继承" 是其中一个。

多层蛋糕很好吃。
正如前端开发中,不管是底层基础的 <div>,还是高级封装的 <Modal>,开发者都可以自由使用。

开发者对这 3 层的 API,都可以自由调用。

Development 下的介绍页为目录页,进行了分类,Reference 下的介绍页为索引页,一页展示全部微件。
微件是 Flutter 开发的根本,对全部微件有一个宏观的认知是重要的。

图中蓝点,就是苹果总部的位置,在 Cupertino 的东北角。

Development 下包含 8 个子菜单项,主要关注 UI 与 Data & backend 两个子菜单项即可。

之前介绍了用来构建界面的微件,现在介绍第 2 个关注点 —— 路由。

Navigator.push(context, Page) 跳过去,Navigator.pop(context) 跳回。
与 vue-router 的 this.$router.push()、react-router 的 history.push() 类似。

上一种跳转方式适用于简单场景,而实际开发中,主要使用的应该是命名跳转这种方式。
routes 中配置路由,然后 Navigator.pushNamed(context, '/page') 跳过去,Navigator.pop(context) 跳回。
Navigator.push() 时,发送数据到新页面。两种方式,一种是在页面微件调用时传入 Page(todo: todos[i]),一种是使用 settings 参数 。

Navigator.pushNamed() 时,发送数据到新页面。使用其第 3 个参数 arguments。

Vue 与 React 路由中没有此种使用方式。
Navigator.push() 异步化(使用 async await 关键字),然后 Navigator.pop() 第 2 个参数传入需带回的数据。
非常简单,两个页面中放置一模一样的元素即可,比如上图代码中,两个微件拥有一模一样的 Image.network()。

所以 Data & backend 菜单项下的页面中,主要介绍 State management,对 Flutter 的状态管理进行一下了解。

UI = f(state),Flutter 从 React 借鉴的另一理念。
React 中,组件其实就是函数,传入 state,返回 UI,传入新的 state,返回新的 UI,仅此而已。
Flutter 中使用了同样的思维方式。

其文档中介绍的使用方式及概念,与 React 极其类似,比如状态提升、Consumer、Provider 等。

就这些,完了。
拜拜~
PDF 下载:drive.google.com/open?id=1Ay…