Flutter深入理解- Flutter 的个人总结

学习和使用 Flutter 断断续续也有近一年的时间了,但是总感觉欠缺着什么,对的,就是对于原理的理解。关于 Flutter 的原理的理解意义可以从两个方面来思考,一方面是对于面试,因为现在面对的找工作环境是越来越卷,仅仅从会API层面来讲作出一个能用的 App 是远远不够的,还必须能够回答出 Flutter相关的原理才行,第二方面是自我的能力的提升和满足自己的好奇心,比如Flutter 是如何渲染到手机屏幕上的,比如Flutter简单理解就是一个UI框架,并不能够进行调用系统的原生能力,但是如何通过插件就能够完成比如定位、存储、音视频多媒体播放等功能。如果说这些仅仅是如何实现Android原生本来就有的功能,那么对于自渲染的这套框架,又是如何组织起来的,又是如何渲染到屏幕上的,有哪些可以优化点,相当于Android原生,有哪些可以借鉴过来的,比如打点日志、网络请求、网络请求拦截器、组件化、MVVM框架。

从上面的思考可以看出有很多可以重新思考的地方,那么就需要整理和归纳,进而理解整清楚整个Flutter的学习和思考框架模型。以下是具体的思考点,对应的都会有专门的博客来解答疑点。

思考点可以从在实践过程中遇到的问题来展开,这样就可以更加深刻的理解整个系统的运行原理,而不是纯粹为了面试或者好奇心来学习这个东西,如果这么搞,太枯燥了,也没有多大的兴趣支撑。

思考题:

1. 为什么要使用 widget.url 来获取更新的数据,而不是用从 StatefulWidget 传递到 State 的url来更新数据??

2. Flutter 项目开发过程中为什么 【Key? key】key 可以为空?什么时候 key 不能为空?key是干嘛的?GlobalKey 、ValueKey、LocakKey 的区别是什么?

3. BuildContext 在很多地方都用,但是这个东西是做什么的?比如 Navigator.of(context).pop() 等方法都会用到?

4. StatelessWidget 和 StatefulWidget 的区别是什么?为什么说能用 StatelessWidget 就不用StatefulWidget ? 

5. SatefulWidget的生命周期是什么?有哪些?都会在什么时候调用?

6. Widget、Element、RenderObject、Layer 分别是什么?有什么联系?

7. Sliver 这东西看着挺高大上的,名字看着也洋气,但是是什么?怎么用?

8. ViewPort 是干嘛的?视口?视口的意思就是能看的到的区域?

9. Android 中有滑动冲突,那么在Flutter中有没有?如果有怎么解决的?

10. Flutter 绘图机制是什么?和Android一样吗?都是父传子给约束条件,然后子控件完成测量之后,给父布局以尺寸大小? 

11. Flutter的状态管理框架 InheritedWidget 的实现原理是什么?为什么子控件可以父控件的数据?

12. Flutter的状态管理框架 Provider 的实现原理是什么?

13. Flutter与Nativ端的数据交互是怎么实现的?

暂时就想到这么多,后面有时间就会补充上来,并解答这些疑惑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值