美文网首页
Dart 相关库

Dart 相关库

作者: Abner_XuanYuan | 来源:发表于2023-10-07 13:17 被阅读0次

    1、简介

    在 Dart 中,库的使用是通过 import 关键字引入。
    library 指令可以创建一个库,每个 Dart 源码文件都可以是一个库,即使没有使用 library 指令来指定。

    分类
    Dart 中的库主要有三种:自定义库、系统内置库、Pub 包管理系统中的库。
    自定义库:Dart 源文件。
    系统内置库:安装过 Dart 环境后可以直接使用的库。如:import dart: math、 import dart:io、import dart: convert等。
    Pub 包管理系统中的库:第三方托管到 Pub 包管理系统的库。

    2、使用注意

    指定库前缀
    如果导入两个存在冲突标识符的库,则可以为这两个库或者其中一个指定前缀。
    例如,如果 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();
    

    导入库的一部分
    如果你只使用库的一部分功能,则可以选择需要导入的 内容。例如:

    //只导入 foo 部分
    import 'package:lib1/lib1.dart' show foo;
    
    //导入除 foo 之外的部分
    import 'package:lib2/lib2.dart' hide foo;
    

    延迟加载库
    Deferred loading (也称之为 lazy loading) 可以让应用在需要的时候再加载库。
    下面是一些使用延迟加载库的场景:
    1、减少 APP 的启动时间。
    2、执行 A/B 测试,例如:尝试各种算法的不同实现。
    3、加载很少使用的功能,例如可选的屏幕和对话框。
    要延迟加载一个库,需要先使用 deferred as 来导入:

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

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

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

    注:
    1、在前面的代码,使用 await 关键字暂停代码执行一直到库加载完成。
    2、在一个库上你可以多次调用 loadLibrary() 函数。但是该库只是载入一次。
    3、延迟加载库的常量在导入的时候是不可用的。只有当库加载完毕的时候,库中常量才可以使用。
    4、在导入文件的时候无法使用延迟库中的类型。如果你需要使用类型,则考虑把接口类型移动到另外一个库中,让两个库都分别导入这个接口库。
    5、Dart 隐含的把 loadLibrary() 函数导入到使用 deferred as 的命名空间 中。 loadLibrary() 方法返回一个 Future。

    更多参考>>>

    相关文章

      网友评论

          本文标题:Dart 相关库

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