介绍:
Flutter 是一门基于dart的跨平台开发语言/工具,可实现 web、pc、android、ios四端,细节可去官网查看,本文主要聊聊作者对移动端(android、ios)见解,希望对Flutter感兴趣的码友一点启发。
当下跨平台开发主要有三种形式:H5+原生(小程序)、JavaScript+原生渲染(React Native)、自绘UI+原生(Flutter)由此不难看出真正性能上能与原生相抗衡的只有Flutter“自绘UI”划重点,不仅如此Flutter采用套壳子的形式,上手后开发速度可追着UI要设计图😁,很舒适。
官方详细讲解https://book.flutterchina.club/chapter2/state_manage.html
Flutter做移动端开发应该从UI渲染、状态管理、众机型UI适配、处作为起点
A-》Ui渲染:
再讲Ui渲染前先介绍:
->StateLessWidget :继承自widget的静态widget布局 无state
->StateFulWidget :继承自widget的动态态widget布局 有state,可setstate() 手动构建Element
->Widget树 : 四棵树之一 ,主体树,生成Element树
->Element树 :四棵树之一 ,与Widget树一一对应,起到了Widget树与Render树中间人的作用,生成Render树
->Render树 :四棵树之一 ,渲染树,顾名思义Ui渲染在此,生成Layer树
->Layer树 :四棵树之一 ,显示树,将渲染后的Ui展示于前端
UI渲染的过程是监测树中节点的state状态是否发生变化来判断是否build,在build时对比oldWidget与newWidget的runTimeType和key是否相同,相同则更新widget中对应Ui的element配置,不同则重新建立element。
其概念原理是 监测widget树一一对应的element树节点的state状态来通知render树的renderObject渲染UI至layer树实现前端显示。
B-》状态管理:
什么是状态管理呢,说白了就是对state做管理,原始的setstate()整个树做build,其中也包含一些并不需要build的Ui(element配置信息),所以引出状态管理机制,状态管理可做到指定UI更新,可以大大减少性能损耗,在Flutter中mvvm、响应式编程便是由此实现。
有两个成熟插件可以使用
一、是官方推荐的provider,在我之前的文章中有提过(https://www.jianshu.com/p/880ba9a0f669)这里我们主要介绍的
二、是我个人很喜欢的GetX,后面我会着重讲讲
C-》路由管理:
所谓路由管理,就是管理页面之间如何跳转,通常也可被称为导航管理,由于每一次的push都写在每一处方法里,杂乱无章,所以将全局页面跳转统一于一处就显得尤为重要,GetX最大的亮点就是状态管理和路由管理真的很棒,码友们期待我后期出的GetX篇吧😁
D-》网络请求:
寻找一个适合自己的网络请求插件封装,主推dio,拦截器和cookie实现效果很佳,本文有详细介绍与代码示例:https://www.jianshu.com/p/cc12507ec9b6
本篇是flutter开发学习的开篇,后期会逐步更新 Flutter完成项目所能用到的相关功能实现讲解
欢迎加QQ群讨论:531134701