跳至主要內容

巩固Flutter

Emilia Zhen大约 2 分钟

FlutterReactNative区别

Flutter通过dart语言开发,ReactNative使用JS开发
Flutterandroid支持更好,ReactNative对苹果支持更好
两者最终都能生成原生APP

WidgetsRenderObjectsElements的关系

widgets是由elements管理的,包括widget的状态,位置信息等,RenderObjects是用来渲染绘制的,最终页面能够呈现在我们的手机屏幕上就是靠RenderObjects

flutter使用到的 Key 有哪些

localkeyglobalkeyuniquekeyObjectKeyglobalkey可以是全局的key,整个应用唯一的,是很昂贵的,允许element在树周围移动或变更父节点而不会丢失状态,一般尽量少用。

Stateless WidgetStateful Widget区别

Stateless是无状态,不会重新绘制页面,Stateful 使用状态的,可以通过setstate来让页面重新绘制,所以一般如果不需要保持状态的页面应该使用stateless Widget,这样可以减少页面的加载时间及内存的占用。

flutter页面的生命周期

类似原生android或者ios开发一样,flutter也有自己的声明周期,如下:

  • initState()
  • didChangeDependencies()
  • build()
  • reassemble()
  • didUpdateWidget()
  • deactivate()
  • dispose()

有使用过哪些常用的第三方框架?

provider状态管理插件,fluro路由管理插件,sqflite数据库插件等

Hot RestartHot Reload 有什么区别吗?

Hot Restart重启整个应用,也就是重新编译代码, Hot Reload只是加载部分更改的代码,所以hot reload是比hot restart更快的显示。

futurestream的区别

都是用来异步处理的,future是单个异步的,而stream是操作连续的异步处理

mixin特性

mixindart语言独有的新特性,意思就是可以混入多个类,类似多继承,但并不是传统的那种继承,mixin定义的类不能有构造方法,避免了与父类的构造方法的冲突

Flutter架构介绍

flutter主要有三层FrameworkEngineEmbedder

  • framework就是提供给我们开发的各种组件等,
  • engine就是把我们的代码编译运行,帮我们渲染UI,绘制图形等
  • Embedder是用来映射成原生的app