1. Dart库分类
-
自定义的库 :
-
系统内置库:
import 'dart:math'; import 'dart:io'; import 'dart:convert'; -
Pub包管理系统中的库
- https://pub.dev/packages
- https://pub.flutter-io.cn/packages
- https://pub.dartlang.org/flutter/
- Pub包说明:
- 需要在自己想项目根目录新建一个pubspec.yaml;
- 在pubspec.yaml文件 然后配置名称 、描述、依赖等信息
- 然后运行 pub get 获取包下载到本地
- 项目中引入库
import 'package:http/http.dart' as http ; 看文档使用
1.2 pubspec.yaml文件 简单配置
name: dart
description: A new flutter module project.
dependencies:
http: ^0.12.0+2
date_format: ^1.0.6
environment:
sdk: '>=2.10.0 <3.0.0'
2. 关于async, await(和js差不多)
- async是让方法变成异步, await是等待异步方法执行完成。
- 只有async方法才能使用await关键字调用方法; 如果调用别的async方法必须使用await关键字
void main() async {
var result = await testAsync();
print(result);
}
//异步方法
testAsync() async {
return 'Hello async';
}
3. dart库命名冲突的解决方案
- 当引入两个库中有相同名称标识符的时候,如果是java通常我们通过写上完整的包名路径来指定使用的具体标识符,甚至不用import都可以,但是Dart里面是必须import的。当冲突的时候,可以使用as关键字来指定库的前缀
import 'package:lib1/lib1.dart';
import 'package:lib2/lib2.dart' as lib2;
Element element1 = new Element(); // UsesElement from lib1.
lib2.Element element2 = new lib2.Element(); // UsesElement from lib2.
4. 部分导入
- 如果只需要导入库的一部分,有两种模式:
- 只导入需要的部分,使用show关键字,如下所示:
import 'package:lib1/lib1.dart' show foo; - 隐藏不需要的部分,使用hide关键字,如下:
import 'package:lib2/lib2.dart' hide foo;
5. 延迟加载:
- 也称为懒加载,可以在需要的时候再进行加载。
- 懒加载的最大好处是可以减少APP的启动时间
- 懒加载使用deferred as关键字来指定, 如:
import 'package:deferred/hello.dart' deferred as hello ; - 当需要使用的时候,需要使用loadLibrary()方法来加载
- 使用细节如下:
greet() async {
await hello.loadLibrary();
hello.printGreeting();
}
|