简介
本系列是我在熟悉Flutter编程语言时记录的一些笔记,希望通过这些记录,掌握Flutter在移动端的一般开发方法,目标是做出一些自己满意的产品。
Flutter 配置
最近尝试进行移动端开发,了解了Flutter框架以及Dart语言,希望能够对其进行深入的探索。
Flutter
- “Everything is a widget” 是指所有代码片段都可以用Widget表示,并非指Flutter只有Widget。有点类似函数第一性,Widget是Flutter的页面构成单位,Style,Animation,Lists,Text,Button…这些都可以用Widget 表示,Widget嵌套是Flutter的应用构建方式。举例来说,并没有一个统一的叫App的作为应用入口,所有的Widget理论上都可以作为应用的入口。Flutter当然也包含其他非Widget的对象。
- 组合优于继承。实践中,很少通过继承方式扩展一个Widget。一般都通过组合Widget的方式构建特定的Widget对象。这有点类似React的方式。
StateFul对象
Application Style
Widget类型
每一个Widget均提供build 方法,并且该方法均需返回一个Widget对象。
StateFulWidget的build方法由State对象提供,通过*createState()*方法建立。StateFulWidget的伴随对象State是可以改变的,但StateFulWidget自身与StateLess对象一样,是不可变的(Immutable)。
Widget的build方法以及BuildContext对象
1 | Widget build(BuildContext context) |
BuildContext由Flutter框架构建,在其调用build方法时传入。
State对象的setState方法
setState接受一个VoidCallback函数对象作为参数,在调用时将会依照配置重新调用所有依赖对象的buid方法完成重绘。注意,相关数据准备应该在重绘开始前完成,这意味着不可以执行一个异步(Async) 方法且不等待其完成,并且期待其结束后再次重绘UI。
State对象的initState方法
当Widget对象被Flutter装载时调用,在Flutter试图执行绘制前执行,用来初始化数据。
一般需要先调用super.initState()方法。