# flutter **Repository Path**: zhangchen9/flutter ## Basic Information - **Project Name**: flutter - **Description**: flutter - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-26 - **Last Updated**: 2024-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Flutter 1.要学flutter必须要学dart 2.main方法是入口方法,每个语句后面要加分号 3.var后不要写类型,写了类型 不要var 两者都写会报错 4.final 可以定义变量一次可以不用赋值,但是赋值只能赋值一次 5.const a=new DateTime.now() 这是不对的,now只有在运行的时候才知道,const不支持运行时赋值,他不是运行时常量 final 是运行时常量,即在运行时第一次使用前才初始化,运行时常量很重要,final可以在运行时动态获得一个值后便不可以修改了 6.字符串的拼接 用 "$变量 $变量 ",也可以通过+号拼接 String str1="hello"; String str2="world"; print("$str1 来呀 $str2"); 7.数据增加数据是通过 add方法 8.map类型 var a3={ "name":"chen" }; print(a3["name"]); 9.str2 is String 判断类型 10.~/ 取整运算符 11.b??=23 表示如果b为空的话 23赋值给b 12.Number转string toString() 13.string转Number int.parse() double.parse() 14.isEmpty判断字符串是否为空 isNaN 15.可选参数在dart里面是[int a] 这么展示 16.dart 没有 public private protect 但是可以使用_把一个属性或者方法定义成私有 17.mixin 定义的可以 with B,C 进行多继承 mixin B { } 18.作为mixins的类只能继承自Object,不能继承其他类 作为mixins的类不能有构造函数 一个类可以mixins多个mixins类 mixins绝不是继承也不是接口而是一种全新的特性 19.想使用第三方库需要创建一个pubspec.yaml文件 20. String? username="zhangsan" String? 表示username是一个可空类型 21. str!.length 类型断言,如果str不等于null 会打印str的长度,如果为null会抛出错误 22.如果类定义的属性没有初始赋值需要加late关键词 class Chen { late String name; late int age; } 23.require关键词 var handle=( {required String name})=>{ }; 24.identical(a,b)判断两个对象是否使用同一个空间 25.dart实例化类的时候可以不用加new 26.实例化常量构造函数 当你使用常量构造函数来创建对象时,你可以使用 const 关键字实例化对象: dart 复制代码 void main() { // 实例化常量构造函数 const point1 = Point(1, 2); const point2 = Point(1, 2); // point1 和 point2 引用同一个实例 print(identical(point1, point2)); // 输出: true } 27.const关键词在多个地方创建相同的对象的时候,内存中只保留了一个对象 28.flutter create 项目名称即可 29.进入目录后,用xcode打开目录->ios->xx.xcworkspace 30.终端中输入r是热更新(有的时候失效),热重启 shift+R(这个才是常用的) o切换模式 31.一般情况是flutter run 默认启用手机版 但是可以 flutter run -d all 启动所有模拟器包括 macos iphone 32.flutter run -d chrome 会运行在浏览器 33.所有文件放到libs下面 34.使用MaterialApp和Scaffold两个组件装饰App 这两个组件是必须得,MaterialApp是一个方便的Widget,他封装了应用程序实现Material Desigin所需要的一些Wiget 一般作为顶层widget使用 35.Flutter把内容单独抽离成一个组件 其实一个组件就是一个类,这个类需要集成StatelessWidget/StatefulWidget 第一个是无状态组件,状态不可变,第二个是有状态的组件,持有的状态可能在widget生命周期改变 36.Container 组件跟div 类似 ![img.png](img.png)