首页 > 其他 > 详细

13.Dart中的库 自定义库、系统库、第三方库

时间:2019-11-27 16:45:22      阅读:41      评论:0      收藏:0      [点我收藏+]
前面介绍Dart基础知识的时候基本上都是在一个文件里面编写Dart代码的,但实际开发中不可能这么写,模块化很重要,所以这就需要使用到库的概念。

 

在Dart中,库的使用时通过import关键字引入的。

 

library指令可以创建一个库,每个Dart文件都是一个库,即使没有使用library指令来指定。
 
Dart中的库主要有三种:

 

1、我们自定义的库     

          import ‘lib/xxx.dart‘;

在同一文件夹下的lib文件夹中写一个Animal.dart 的自定义库
class Animal{
  String _name;   //私有属性
  int age; 
  //默认构造函数的简写
  Animal(this._name,this.age);

  void printInfo(){   
    print("${this._name}----${this.age}");
  }

  String getName(){ 
    return this._name;
  } 
  void _run(){
    print(‘这是一个私有方法‘);
  }

  execRun(){
    this._run();  //类里面方法的相互调用
  }
}
  
 
在dart文件中引入这个库
import ‘lib/Animal.dart‘; //引入库
main(){
  var a=new Animal(‘小黑狗‘, 20);
  print(a.getName());
}

    

 2、系统内置库       

          import ‘dart:math‘;    
          import ‘dart:io‘; 
          import ‘dart:convert‘;
          ......  
// import ‘dart:io‘;
import "dart:math";
main(){
 
    print(min(12,23));

    print(max(12,25));
    
}

  

 3、Pub包管理系统中的库  

        
1、从下面网址找到要用的库
        https://pub.dev/packages
        https://pub.flutter-io.cn/packages
        https://pub.dartlang.org/flutter/

2、创建一个pubspec.yaml文件,内容如下

    name: xxx
    description: A new flutter module project.
    dependencies:  
        http: ^0.12.0+2
        date_format: ^1.0.6

3、配置dependencies
4、运行pub get 获取远程库
5、看文档引入库使用
 
技术分享图片

 

 

4.冲突解决

当引入两个库中有相同名称标识符的时候,如果是java通常我们通过写上完整的包名路径来指定使用的具体标识符,甚至不用import都可以,但是Dart里面是必须import的。当冲突的时候,可以使用as关键字来指定库的前缀。如下例子所示:

    import ‘package:lib1/lib1.dart‘;
    import ‘package:lib2/lib2.dart‘ as lib2;


    Element element1 = new Element();           // Uses Element from lib1.
    lib2.Element element2 = new lib2.Element(); // Uses Element from lib2.
 

5.部分导入

  如果只需要导入库的一部分,有两种模式:

     模式一:只导入需要的部分,使用show关键字,如下例子所示:

      import ‘package:lib1/lib1.dart‘ show foo;

     模式二:隐藏不需要的部分,使用hide关键字,如下例子所示:

      import ‘package:lib2/lib2.dart‘ hide foo;      

 

6.延迟加载


    也称为懒加载,可以在需要的时候再进行加载。
    懒加载的最大好处是可以减少APP的启动时间。

    懒加载使用deferred as关键字来指定,如下例子所示:

    import ‘package:deferred/hello.dart‘ deferred as hello;

    当需要使用的时候,需要使用loadLibrary()方法来加载:
 
 
 

13.Dart中的库 自定义库、系统库、第三方库

原文:https://www.cnblogs.com/The-Chao/p/11943260.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!