1. 什么是 Flutter,为什么选择 Flutter?
答案:
Flutter 是 Google 开发的开源 UI 软件开发工具包,用于跨平台的应用程序开发。开发者可以使用同一份代码库构建 Android、iOS、Web 和桌面应用程序。
选择 Flutter 的原因包括:
- 跨平台:一套代码可以运行在多个平台上。
- 高性能:Flutter 使用了 Dart 语言,支持 JIT 和 AOT 编译,同时采用 Skia 图形引擎,提供接近原生的性能。
- 丰富的组件:Flutter 提供了大量的预置组件,开发者可以快速构建出具有现代风格的 UI 界面。
- 热重载(Hot Reload):可以快速预览代码更改,极大提高开发效率。
2. Flutter 和 React Native 的区别是什么?
答案:
- 编程语言:Flutter 使用 Dart,而 React Native 使用 JavaScript。
- 渲染方式:Flutter 通过 Skia 图形引擎直接绘制 UI,而 React Native 使用原生组件。
- 性能:Flutter 的性能通常更好,因为它没有桥接层,所有的组件都是自己绘制的。
- 社区支持:React Native 社区更大,但 Flutter 由于 Google 的支持,生态系统也在快速增长。
3. 什么是 StatefulWidget 和 StatelessWidget?有什么区别?
答案:
- StatelessWidget:表示不可变的 UI 组件,当输入数据改变时,整个组件需要被重新构建。这类组件不包含任何状态。
- StatefulWidget:表示包含状态的组件,状态可以在组件生命周期内发生变化。
StatefulWidget
本身不可变,但它持有的State
对象是可变的,State
对象负责维护组件的状态。
4. Flutter 的 BuildContext 是什么?
答案:BuildContext
是 Flutter 中的一个类,它包含了有关树中某个 Widget 位置的信息。BuildContext
用于在 Widget 树中查找其他 Widget、主题信息等。每个 Widget
都有一个与之关联的 BuildContext
,并且可以通过 context
访问 Widget 树的父级或其他层级的 Widget。