小菜鸡开始学习flutter之十三

95 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情

今日目标

前面这些天我们学习到了一些dart方面的一些基础知识。今天我们来了解以下Dart中的库、自定义库、系统库还有第三方库

三种库的形式

  • 自定义库 import 'lib/xxx.dart';

  • 系统内置库 import 'dart:math'; import 'dart:io'

  • Pub包管理系统中的库

    pub.dev/packages
    pub.flutter-io.cn/packages
    pub.dartlang.org/flutter

    第三方库需要在我们的项目根目录下创建一个pubspec.yaml文件,在pubspec.yaml文件内配置好名称、描述、依赖等信息,然后运行pub get通过互联网获取包并下载到本地,然后在我们的项目中引入需要的库 通过形如import 'package:http/http.dart as http'这种形式引入到项目中进行使用。

自定义库

什么是自定义库呢?
在编码的时候我们经常会遇到一些重复使用的代码,这个时候我们将这些重复使用的代码抽离出来放到一个单独的dart文件里进行管理,这个文件就可以称之为自定义库。我们在其他需要使用到地方直接引入这个自定义库就可以了,形如import 'lib/myself.dart',就能够使用自定义库里面我们定义好的功能。

系统库

系统库就是dart中已经内置好的一些库,引用这些系统库的时候可以形import 'dart:io'这样进行引用。

扩展 async/await

比如我们在使用io这个库去发起请求的时候,接口的响应结果需要等待一下才会返回,假设我们借来的操作需要依赖于接口响应的内容,这个时候我们就可以使用到async/await这个方式。

testAsync() async{
    return 'hihihih';
}


void main() async{
    var result = await testAsync();
    print(result);
}

image.png
使用async/await有两点需要记住\

  • 只有async方法才能使用await关键字调用方法
  • 如果调用别的async方法必须使用await关键字

async是让方法变成异步,await是等待异步方法的执行完毕。

第三方库

第三方库也就是其他人写好的托管在一些包管理平台上的库。 通过import 'package:http/http.dart' as http这种方式引入第三方库。通常来说第三方库会有一个使用文档,通过文档可以了解库的功能以及如何使用。
学习过前端的同学这里就很熟悉了,这里就和我们使用的npm包一个意思

库冲突和重命名

假设如下场景

// lib/person1.dart
class Person{}
// lib/person2.dart
class Person(){}

// main.dart

import 'lib/person1.dart';
import 'lib/person2.dart';

Person a = new Person();

我们有两个自定义库,但是在文件内定义的类名都叫Person, 在main.dart中引入这两个文件,实例化Person,这个时候就会报错,因为出现类名冲突。这个时候就可以通过as重命名来解决冲突

// main.dart
import 'lib/person1.dart';
import 'lib/person2.dart' as Person2;

Person2.Person p2 = new Person2.Person();

部分导入

// lib/a.dart
void printName () {};
void printAge() {};
void printSex() {};

// main.dart
import 'lib/a.dart' show printName;

import 'lib/a.dart' hide printAge;

向上面这样通过show关键字来限定要引入库中的哪些方法。又或者通过hide关键字表示不引入库中的哪些方法。

ending

持续学习,加油,如有不对的地方还请指正,谢谢~~