flutter學(xué)習(xí)筆記-庫(kù)的導(dǎo)入(as,show的用法)

摘自:https://www.cnblogs.com/loaderman/p/11027076.html
前面介紹Dart基礎(chǔ)知識(shí)的時(shí)候基本上都是在一個(gè)文件里面編寫Dart代碼的,但實(shí)際開發(fā)中不可能這么寫蜈出,模塊化很重要,所以這就需要使用到庫(kù)的概念邮绿。

在Dart中么介,庫(kù)的使用時(shí)通過(guò)import關(guān)鍵字引入的。

library指令可以創(chuàng)建一個(gè)庫(kù),每個(gè)Dart文件都是一個(gè)庫(kù)褐着,即使沒有使用library指令來(lái)指定判莉。

Dart中的庫(kù)主要有三種:

1豆挽、我們自定義的庫(kù)     
      import 'lib/xxx.dart';
2、系統(tǒng)內(nèi)置庫(kù)       
      import 'dart:math';    
      import 'dart:io'; 
      import 'dart:convert';
3券盅、Pub包管理系統(tǒng)中的庫(kù)  
    https://pub.dev/packages
    https://pub.flutter-io.cn/packages
    https://pub.dartlang.org/flutter/

    1帮哈、需要在自己想項(xiàng)目根目錄新建一個(gè)pubspec.yaml
    2、在pubspec.yaml文件 然后配置名稱 锰镀、描述娘侍、依賴等信息
image.png
    3、然后運(yùn)行 pub get 獲取包下載到本地  
    4泳炉、項(xiàng)目中引入庫(kù) import 'package:http/http.dart' as http; 看文檔使用

導(dǎo)入本地庫(kù)

import 'lib/Animal.dart';
main(){
  var a=new Animal('小黑狗', 20);
  
  print(a.getName());
}



class Animal{
  String _name;   //私有屬性
  int age; 
  //默認(rèn)構(gòu)造函數(shù)的簡(jiǎn)寫
  Animal(this._name,this.age);

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

  String getName(){ 
    return this._name;
  } 
  void _run(){
    print('這是一個(gè)私有方法');
  }

  execRun(){
    this._run();  //類里面方法的相互調(diào)用
  }
}

導(dǎo)入系統(tǒng)內(nèi)置的庫(kù)

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

    print(max(12,25));
    
}

import 'dart:io';
import 'dart:convert';


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


//api接口: http://news-at.zhihu.com/api/3/stories/latest
getDataFromZhihuAPI() async{
  //1憾筏、創(chuàng)建HttpClient對(duì)象
  var httpClient = new HttpClient();  
  //2、創(chuàng)建Uri對(duì)象
  var uri = new Uri.http('news-at.zhihu.com','/api/3/stories/latest');
  
  //3花鹅、發(fā)起請(qǐng)求氧腰,等待請(qǐng)求
  var request = await httpClient.getUrl(uri);
  //4、關(guān)閉請(qǐng)求刨肃,等待響應(yīng)
  var response = await request.close();
  //5古拴、解碼響應(yīng)的內(nèi)容
  return await response.transform(utf8.decoder).join();
}

說(shuō)明

/*
async和await
  這兩個(gè)關(guān)鍵字的使用只需要記住兩點(diǎn):
    只有async方法才能使用await關(guān)鍵字調(diào)用方法
    如果調(diào)用別的async方法必須使用await關(guān)鍵字


async是讓方法變成異步。
await是等待異步方法執(zhí)行完成真友。


*/

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

}

//異步方法
testAsync() async{
  return 'Hello async';
}

導(dǎo)入第三方庫(kù)

/*
pub包管理系統(tǒng):


1黄痪、從下面網(wǎng)址找到要用的庫(kù)
       https://pub.dev/packages
       https://pub.flutter-io.cn/packages
       https://pub.dartlang.org/flutter/

2、創(chuàng)建一個(gè)pubspec.yaml文件盔然,內(nèi)容如下

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

3满力、配置dependencies

4、運(yùn)行pub get 獲取遠(yuǎn)程庫(kù)

5轻纪、看文檔引入庫(kù)使用
*/
import 'dart:convert' as convert;
import 'package:http/http.dart' as http;
import 'package:date_format/date_format.dart';

main() async {
 // var url = "http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1";

 //   // Await the http get response, then decode the json-formatted responce.
 //   var response = await http.get(url);
 //   if (response.statusCode == 200) {
 //     var jsonResponse = convert.jsonDecode(response.body);
    
 //     print(jsonResponse);
 //   } else {
 //     print("Request failed with status: ${response.statusCode}.");
 //   }


 
   print(formatDate(DateTime(1989, 2, 21), [yyyy, '*', mm, '*', dd]));

}

Dart庫(kù)的重命名 Dart沖突解決

/*
1油额、沖突解決
當(dāng)引入兩個(gè)庫(kù)中有相同名稱標(biāo)識(shí)符的時(shí)候,如果是java通常我們通過(guò)寫上完整的包名路徑來(lái)指定使用的具體標(biāo)識(shí)符刻帚,甚至不用import都可以潦嘶,但是Dart里面是必須import的。當(dāng)沖突的時(shí)候崇众,可以使用as關(guān)鍵字來(lái)指定庫(kù)的前綴掂僵。如下例子所示:

    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.

*/

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();

}

部分導(dǎo)入

/*
部分導(dǎo)入
  如果只需要導(dǎo)入庫(kù)的一部分航厚,有兩種模式:
     模式一:只導(dǎo)入需要的部分,使用show關(guān)鍵字锰蓬,如下例子所示:
      import 'package:lib1/lib1.dart' show foo;
     模式二:隱藏不需要的部分幔睬,使用hide關(guān)鍵字,如下例子所示:
      import 'package:lib2/lib2.dart' hide foo;      
*/

// import 'lib/myMath.dart' show getAge;

 import 'lib/myMath.dart' ;

void main(){
  getName();
  
  
}

延遲加載

/*
延遲加載

    也稱為懶加載芹扭,可以在需要的時(shí)候再進(jìn)行加載麻顶。
    懶加載的最大好處是可以減少APP的啟動(dòng)時(shí)間。

    懶加載使用deferred as關(guān)鍵字來(lái)指定舱卡,如下例子所示:

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

    當(dāng)需要使用的時(shí)候辅肾,需要使用loadLibrary()方法來(lái)加載:

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


*/
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市轮锥,隨后出現(xiàn)的幾起案子矫钓,更是在濱河造成了極大的恐慌,老刑警劉巖舍杜,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件新娜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡既绩,警方通過(guò)查閱死者的電腦和手機(jī)杯活,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)熬词,“玉大人旁钧,你說(shuō)我怎么就攤上這事』ナ埃” “怎么了歪今?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)颜矿。 經(jīng)常有香客問(wèn)我寄猩,道長(zhǎng)糠惫,這世上最難降的妖魔是什么铃诬? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮兴革,結(jié)果婚禮上箍铭,老公的妹妹穿的比我還像新娘泊柬。我一直安慰自己,他們只是感情好诈火,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布兽赁。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刀崖。 梳的紋絲不亂的頭發(fā)上惊科,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音亮钦,去河邊找鬼馆截。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蜂莉,可吹牛的內(nèi)容都是我干的蜡娶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼巡语,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼翎蹈!你這毒婦竟也來(lái)了淮菠?” 一聲冷哼從身側(cè)響起男公,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎合陵,沒想到半個(gè)月后枢赔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拥知,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年踏拜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片低剔。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡速梗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出襟齿,到底是詐尸還是另有隱情姻锁,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布猜欺,位于F島的核電站位隶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏开皿。R本人自食惡果不足惜涧黄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赋荆。 院中可真熱鬧笋妥,春花似錦、人聲如沸窄潭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至信认,卻和暖如春材义,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嫁赏。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工其掂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潦蝇。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓款熬,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親攘乒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贤牛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容