Flutter知识点总结
前言
今天开始动手学习FLutter,记录一下相关知识点~
一、变量声明
Dart
与JavaScript
类似,可使用var
关键字声明变量,不同的是在Dart
中var
声明的变量会在第一次赋值时绑定类型之后便不可再次修改。- 使用
dynamic
关键字声明变量,但dynamic
声明的变量可以在后期改变数据类型。 final
和const
,两者都可以让变量不可被修改,区别是:const
是一个编译常量,而final
在第一次使用时被初始化。
二、StatefulWidget和StatelessWidget
可根据是否有误状态简单分为StatefulWidget
和StatelessWidget
。StatefulWidget
即在生命周期中拥有状态的Widget
,更具体一点来说StatefulWidget
类至少由两个类组成:
StatefulWidget
类State
类:这个类才是真正在声明周期中状态发生变化的类
State类
State类里面有
- 自己的私有属性,即状态;
build
方法,该方法返回一个Widget
;setState
方法,在该方法里改变状态会触发build
方法,重新渲染UI
;
在构建页面的时候会在build
方法中用到Scaffold
,Scaffold
是Material
提供的页面脚手架,他包含标题,导航栏和包含主屏幕Widget
的body
属性。
三、MaterialPageRoute
MaterialPageRoute
继承自PageRoute
类,是一个占满屏幕的静态路由页面,还定义了路由构建及切换时过渡动画的相关接口及属性。
Navigator
Navigator
是路由管理的组件:
Future push(BuildContext context, Route route)
,路由入栈,返回一个Future
对象(和Promise
对象特别像,也支持async
和await
),返回的值是该页面退出是返回给上一层组件的参数。bool pop(BuildContext context, [ result ])
,这个可选参数result 就是要返回给上一层页面的参数。
例子见:Flutter实战