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实战
|