Flutter Dart
一、第三类库使用:pub包管理系统
二、async和await
三、内置库网络请求
四、Dart库的重命名 Dart冲突解决
五、库部分导入
六、延迟加载
一、第三类库使用:pub包管理系统
pub包管理系统: 1、从下面网址找到要用的库 https://pub.dev/packages https://pub.flutter-io.cn/packages https://pub.dartlang.org/flutter/ 2、创建一个pubspec.yaml文件,内容如下 name: xxx description: A new flutter module project. dependencies: http: ^0.12.0+2 date_format: ^1.0.6 3、配置dependencies 4、运行pub get 获取远程库 5、看文档引入库使用
二、async和await
/* async和await 这两个关键字的使用只需要记住两点: 只有async方法才能使用await关键字调用方法 如果调用别的async方法必须使用await关键字 async是让方法变成异步。 await是等待异步方法执行完成。 */ void main() async{ var result = await testAsync(); print(result); } //异步方法 testAsync() async{ return 'Hello async'; }
三、内置库网络请求
import 'dart:io'; import 'dart:convert'; void main() async{ var result = await getDataFromZhihuAPI(); print(result); } //api接口: http://news-at.zhihu.com/api/3/stories/latest getDataFromZhihuAPI() async{ //1、创建HttpClient对象 var httpClient = new HttpClient(); //2、创建Uri对象 var uri = new Uri.http('news-at.zhihu.com','/api/3/stories/latest'); //3、发起请求,等待请求 var request = await httpClient.getUrl(uri); //4、关闭请求,等待响应 var response = await request.close(); //5、解码响应的内容 return await response.transform(utf8.decoder).join(); }
四、Dart库的重命名 Dart冲突解决
/* 1、冲突解决 当引入两个库中有相同名称标识符的时候,如果是java通常我们通过写上完整的包名路径来指定使用的具体标识符, 甚至不用import都可以,但是Dart里面是必须import的。当冲突的时候,可以使用as关键字来指定库的前缀。如下例子所示: import 'package:lib1/lib1.dart'; import 'package:lib2/lib2.dart' as lib2; Element element1 = new Element(); // Uses Element from lib1. lib2.Element element2 = new lib2.Element(); // Uses Element from lib2. */ import 'lib/Person1.dart'; import 'lib/Person2.dart' as lib;
main(List<String> args) { Person p1=new Person('张三', 20); p1.printInfo(); lib.Person p2=new lib.Person('李四', 20); p2.printInfo(); }
五、库部分导入
/* 部分导入 如果只需要导入库的一部分,有两种模式: 模式一:只导入需要的部分,使用show关键字,如下例子所示: import 'package:lib1/lib1.dart' show foo; 模式二:隐藏不需要的部分,使用hide关键字,如下例子所示: import 'package:lib2/lib2.dart' hide foo; */ // import 'lib/myMath.dart' show getAge; import 'lib/myMath.dart' hide getName; void main(){ // getName(); getAge(); }
六、延迟加载
/* 延迟加载 也称为懒加载,可以在需要的时候再进行加载。 懒加载的最大好处是可以减少APP的启动时间。 懒加载使用deferred as关键字来指定,如下例子所示: import 'package:deferred/hello.dart' deferred as hello; 当需要使用的时候,需要使用loadLibrary()方法来加载: greet() async { await hello.loadLibrary(); hello.printGreeting(); } */