巩固Flutter
大约 2 分钟
Flutter与ReactNative区别
Flutter通过dart语言开发,ReactNative使用JS开发Flutter对android支持更好,ReactNative对苹果支持更好
两者最终都能生成原生APP
Widgets、RenderObjects 和 Elements的关系
widgets是由elements管理的,包括widget的状态,位置信息等,RenderObjects是用来渲染绘制的,最终页面能够呈现在我们的手机屏幕上就是靠RenderObjects。
flutter使用到的 Key 有哪些
localkey、globalkey、uniquekey、ObjectKey,globalkey可以是全局的key,整个应用唯一的,是很昂贵的,允许element在树周围移动或变更父节点而不会丢失状态,一般尽量少用。
Stateless Widget和Stateful Widget区别
Stateless是无状态,不会重新绘制页面,Stateful 使用状态的,可以通过setstate来让页面重新绘制,所以一般如果不需要保持状态的页面应该使用stateless Widget,这样可以减少页面的加载时间及内存的占用。
flutter页面的生命周期
类似原生android或者ios开发一样,flutter也有自己的声明周期,如下:
initState()didChangeDependencies()build()reassemble()didUpdateWidget()deactivate()dispose()
有使用过哪些常用的第三方框架?
provider状态管理插件,fluro路由管理插件,sqflite数据库插件等
Hot Restart 和 Hot Reload 有什么区别吗?
Hot Restart重启整个应用,也就是重新编译代码, Hot Reload只是加载部分更改的代码,所以hot reload是比hot restart更快的显示。
future 和stream的区别
都是用来异步处理的,future是单个异步的,而stream是操作连续的异步处理
mixin特性
mixin是dart语言独有的新特性,意思就是可以混入多个类,类似多继承,但并不是传统的那种继承,mixin定义的类不能有构造方法,避免了与父类的构造方法的冲突
Flutter架构介绍
flutter主要有三层Framework、Engine、Embedder
framework就是提供给我们开发的各种组件等,engine就是把我们的代码编译运行,帮我们渲染UI,绘制图形等Embedder是用来映射成原生的app
