库和可见性
最后更新于:2022-04-02 02:15:54
[TOC]
## 库
```
//官方库
import 'dart:html';
//第三方库,使用路径
import 'package:test/test.dart';
```
### 引入自定义库
```
├── class
│ └── person.dart
└── main.dart
```
```
//person.dart
class person {
static echo(String name) {
print('hello ${name}');
}
}
//main.dart
import 'class/person.dart'; // 如果 main 在 bin/mian.dart 则使用 ../class/person.dart
void main() {
person.echo('cc'); // hello cc
}
```
### 指定库前缀
```
import 'package:lib1/lib1.dart';
import 'package:lib2/lib2.dart' as lib2;
// 使用 lib1 中的 Element。
Element element1 = Element();
// 使用 lib2 中的 Element。
lib2.Element element2 = lib2.Element();
```
### 导入库的一部分
```
// Import only foo.
import 'package:lib1/lib1.dart' show foo;
// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;
```
### 延迟加载库
使用场景
* 减少 APP 的启动时间。
* 执行 A/B 测试,例如 尝试各种算法的 不同实现。
* 加载很少使用的功能,例如可选的屏幕和对话框。
```
import 'class/person.dart' deferred as person;
echo()async{
await person.loadLibrary();
person.person.echo("cc");
}
void main() {
echo();
}
```
';