美文网首页
[Flutter]Dart中关于库的简介

[Flutter]Dart中关于库的简介

作者: dafasoft | 来源:发表于2021-02-04 15:54 被阅读0次

库和可见性

import 和 library 指令可以用来创建一个模块化的,可共享的代码库。 库不仅提供了 API ,而且对代码起到了封装的作用: 以下划线 (_) 开头的标识符仅在库内可见。 每个 Dart 应用程序都是一个库 ,虽然没有使用 library 指令。

使用库

通过 import 指定一个库命名空间中的内如如何在另一个库中使用。 例如,Dart Web应用程序通常使用 dart:html 库,它们可以像这样导入:

import 'dart:html';`

import 参数只需要一个指向库的 URI。 对于内置库,URI 拥有自己特殊的dart: 方案。 对于其他的库,使用系统文件路径或者 package: 方案 。 package: 方案指定由包管理器(如 pub 工具)提供的库。例如:

import 'package:test/test.dart';

指定库前缀

如果导入两个存在冲突标识符的库, 则可以为这两个库,或者其中一个指定前缀。 例如,如果 library1 和 library2 都有一个 Element 类, 那么可以通过下面的方式处理:

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;

延迟加载库

Deferred loading (也称之为 lazy loading) 可以让应用在需要的时候再加载库。 下面是一些使用延迟加载库的场景:

  • 减少 APP 的启动时间。
  • 执行 A/B 测试,例如 尝试各种算法的 不同实现。
  • 加载很少使用的功能,例如可选的屏幕和对话框。

要延迟加载一个库,需要先使用 deferred as 来导入:

import 'package:greetings/hello.dart' deferred as hello;

当需要使用的时候,使用库标识符调用 loadLibrary() 函数来加载库:

Future greet() async {
  await hello.loadLibrary();
  hello.printGreeting();
}

在前面的代码,使用 await 关键字暂停代码执行一直到库加载完成。
在一个库上你可以多次调用 loadLibrary() 函数。但是该库只是载入一次。
使用延迟加载库的时候,请注意一下问题:

  • 延迟加载库的常量在导入的时候是不可用的。 只有当库加载完毕的时候,库中常量才可以使用。
  • 在导入文件的时候无法使用延迟库中的类型。 如果你需要使用类型,则考虑把接口类型移动到另外一个库中, 让两个库都分别导入这个接口库。
  • Dart 隐含的把 loadLibrary() 函数导入到使用 deferred as *的命名空间* 中。 loadLibrary() 方法返回一个 Future

相关文章

  • [Flutter]Dart中关于库的简介

    库和可见性 import 和 library 指令可以用来创建一个模块化的,可共享的代码库。 库不仅提供了 API...

  • Dart基础(一)

    前言:笔者最近看了Flutter相关的内容,而Flutter的基础库是由Dart编写的,所以笔者学习了关于Dart...

  • Dart基础(二)

    前言:笔者最近看了Flutter相关的内容,而Flutter的基础库是由Dart编写的,所以笔者学习了关于Dart...

  • Flutter 代码规范整理

    Dart 语法简介 Flutter是使用Dart语言开发的。Dart语言是基于类的纯面向对象语言。Dart 中的所...

  • Flutter 内存机制初探

    Dart RunTime简介 Flutter Framework使用Dart语言开发,所以App进程中需要一个Da...

  • Flutter基础入门(三)Dart快速入门

    前言 Dart是Flutter SDK指定的语言,因此要学习Flutter,Dart是必须掌握的。关于Dart可以...

  • 初识Flutter 2019-03-18

    标签(空格分隔): Flutter Dart Flutter简介 Flutter 是 Google推出并开源的移动...

  • Flutter整体架构

    Flutter架构 Flutter Framework,该层是Dart库,google实现一套用Dart语言开发的...

  • Flutter之入门简介

    Flutter之带你了解Flutter 简介 Flutter是google推出的,一个使用Dart语言开发的跨平台...

  • flutter好用的第三方开源库

    记录一些好用的flutter开源库 Dart Packages-这个上面可以查询flutter相关的插件和库 fl...

网友评论

      本文标题:[Flutter]Dart中关于库的简介

      本文链接:https://www.haomeiwen.com/subject/kimbtltx.html