自定义库
我们可以将一组功能提取成一个独立的dart文件,这就是dart的自定义库。
系统内置库

第三方库
我们可以从下面网址找到要用的库:
https://pub.dev/packages
https://pub.flutter-io.cn/packages
https://pub.dartlang.org/flutter/
复制
找到对应的库之后,我们首先创建一个pubspec.yaml文件,内容如下:
name: xxx
description: A new flutter module project.
dependencies:
http: ^0.12.0+2
date_format: ^1.0.6
复制
然后将所需导入的库的信息配置到dependencies。
然后在终端运行 pub get 命令获取远程库。
然后看文档引入库进行使用。
引入库的冲突
当引入的两个库具有相同的名称标识符的时候,会造成冲突。这个时候就可以使用as关键字来指定库的前缀。
比如,Person1.dart文件中定义了Person类:
class Person{
String name;
int age;
//默认构造函数的简写
Person(this.name,this.age);
Person.setInfo(String name,int age){
this.name=name;
this.age=age;
}
void printInfo(){
print("Person1:${this.name}----${this.age}");
}
}
复制
Person2文件中也定义了Person类:
class Person{
String name;
int age;
//默认构造函数的简写
Person(this.name,this.age);
Person.setInfo(String name,int age){
this.name=name;
this.age=age;
}
void printInfo(){
print("Person2:${this.name}----${this.age}");
}
}
复制
然后在某文件中同时引入Person1.dart和Person2.dart的时候就会导致冲突。这是就可以给其中一个库文件指定前缀:
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;
复制
以上