1 导入
import
import 'dart:html'; // 导入 Dart 标准库(uri)
import 'com/hello.dart' //导入com包下的hello文件
//防止对象重名
import 'com/a.dart';
import 'com/a2.dart' as a2; //a2.dart方法的名字和a.dart相同
main(){
A a = A(); //使用a.dart中的A类
a2.A a2 = a2.A(); //使用a2.dart中的A类
}
部分导入
import 'package:lib1/lib1.dart' show foo; //只导入lib1.dart的foo类
import 'package:lib2/lib2.dart' hide foo; //导入lib2.dart中除foo之外的类
懒加载库
按需加载,需要导入时,调用loadLibrary()
即可
import 'package:greetings/hello.dart' deferred as hello;
//使用需要loadLibrary()
Future greet() async {
await hello.loadLibrary();
hello.printGreeting();
}
import
各文件是互相不可见的,如果在A库中import了B库,B库import了C库,A库是没有办法直接使用C库的对象的
2 拆分
part
与 part of
// 在 math.dart 文件中
library math;
part 'base.dart';
part 'random.dart';
// 在 base.dart 文件的开头
part of math;
// 在 random.dart 文件的开头
part of math;
//实际使用单个方法时必须引入math.dart
part
各文件是互知存在的,是一个整体,所有对象是共享的(各部分不许重复引入)
3 库名
library
标识,与part of配合使用
library material; //标示符定义当前库的名字
import 语句用的是 URI 而不是库的名字
4 导出
export
多个较小的库组合为一个较大的库或者重新导出库的一部分作为一个新的库
export
各文件是互相不可见的,如果在A库中export
了B库、C库,A库是包含B、C库的全部的
//material.dart 这是一个组合库,建议不要在其中有功能代码
library material;
export 'src/material/about.dart';
export 'src/material/animated_icons.dart';
export 'src/material/app.dart';
export 'src/material/app_bar.dart';