Ionic3開發(fā)教程 - 開發(fā)(2)

Ionic3開發(fā)系列教程
Ionic3開發(fā)教程 - 環(huán)境準(zhǔn)備(1)
Ionic3開發(fā)教程 - 開發(fā)(2)
Ionic3開發(fā)教程 - 發(fā)布Android版本(3)
Ionic3開發(fā)教程 - 發(fā)布IOS版本(4)
Ionic3開發(fā)教程 - 更新(5)

本文中介紹的Ionic3.20.0是基于Angular5.2.11的一套App混合開發(fā)框架聪轿;這里主要介紹Ionic3框架開發(fā)基本概念榴都,深入開發(fā)請移步:ionic官網(wǎng)

整體使用下來和Angular有以下不同:
1.路由配置方式不同
2.頁面加載生命周期鉤子不同
3.頁面模塊化

項(xiàng)目目錄結(jié)構(gòu)一覽:

image.png

當(dāng)打開App時(shí),文件加載順序是:
1蓖宦、index.html
2皱坛、app/main.js
3握巢、app/app.module.ts
4唐含、app/app.component.ts
5、app/app.component.ts中rootPage配置的首頁面

常用cli命令:

  • 新建項(xiàng)目:Ionic start App tabs
  • 運(yùn)行項(xiàng)目:ionic serve
  • 打包:ionic cordova build android/ios
  • 查看環(huán)境:ionic info
  • 新建頁面:ionic generate page Login
  • 新建組件:ionic generate component dropdownlist
    查看更多:Ionic CLI Documentation

頁面制作

一秕硝、創(chuàng)建頁面
執(zhí)行命令Ionic g page login,生成4個(gè)文件洲尊,如下圖:

image.png

二远豺、頁面跳轉(zhuǎn)
Ionic3中頁面跳轉(zhuǎn)由導(dǎo)航控制器(NavController)控制,每個(gè)導(dǎo)航控制器存放當(dāng)前導(dǎo)航下所有頁面記錄坞嘀。ion-tabs組件中含有多個(gè)彼此獨(dú)立的導(dǎo)航控制器躯护。
常用操作:push(前進(jìn))pop(回退)丽涩、setRoot(設(shè)置首頁)棺滞、popToRoot(回到首頁)等等。查看更多方法
代碼案例:

import { Component } from '@angular/core';
import { IonicPage, NavController } from 'ionic-angular';

@IonicPage(
  { name: "login" }//配置頁面名稱矢渊,用于:this.navCtrl.setRoot(頁面名稱);
)
@Component({
  selector: 'page-login',
  templateUrl: 'login.html',
})
export class LoginPage {
  constructor(public navCtrl: NavController) { }

  go1() {
    this.navCtrl.setRoot("main");//清空導(dǎo)航日志棧继准,添加main到第一個(gè);
  }
  go2() {
    this.navCtrl.push("main", { deftype: 1 });//導(dǎo)航日志棧中添加main頁面矮男;
  }
  back() {
    this.navCtrl.pop();//導(dǎo)航日志棧中刪除當(dāng)前頁面移必,回退到上一個(gè)頁面;
  }
}

要用好Ionic3需要清楚ionicpage毡鉴、ionicpagemodule作用崔泵,他們實(shí)現(xiàn)了頁面模塊化:
https://ionicframework.com/docs/v3/api/navigation/IonicPage/
https://ionicframework.com/docs/v3/api/IonicPageModule/

三、獲取參數(shù)
在用this.navCtrl.push("main", { deftype: 1 });跳轉(zhuǎn)時(shí)猪瞬,傳入的參數(shù)可以用NavParams來獲仍魅场;
代碼演示:

import { Component } from '@angular/core';
import { IonicPage, NavParams } from 'ionic-angular';

@IonicPage({ name: "main" })
@Component({
  selector: 'page-main',
  templateUrl: 'main.html',
})
export class MainPage {
  constructor(public navParams: NavParams) {
    console.log(this.navParams.get("deftype"));//獲取this.navCtrl.push("main", { deftype: 1 });中的deftype
  }
}

四陈瘦、使用自定義服務(wù)
執(zhí)行Ionic g provider httppost幌甘,會(huì)在providers目錄生成一個(gè)httppost目錄,app.module.ts自動(dòng)在providers配置項(xiàng)添加httppost依賴甘晤。
服務(wù)調(diào)用案例:

//----------LoginPage頁面調(diào)用http-post服務(wù)
import { HttpPostProvider } from './../http-post/http-post';
export class LoginPage {
  constructor(public httpPost: HttpPostProvider) {}
  data(param) {
    return this.httpPost.query(param);
  }
}

//----------http-post服務(wù)代碼
import { Injectable } from '@angular/core';
@Injectable()
export class HttpPostProvider {
  constructor() { }

  query(urlModel) {
    //含潘。。线婚。代碼
  }
}

五遏弱、數(shù)據(jù)綁定

//----------模板文件
<ion-header>
  <ion-navbar>
    <ion-title>Home</ion-title>
  </ion-navbar>
</ion-header>
<ion-content padding>
  <h2>{{title}}</h2>
  <p>
    <ion-input type="text" [(ngModel)]="keyword" placeholder="請輸入賬號(hào)" #username></ion-input>
  </p>
  <p>
    {{keyword}}
  </p>
  <ul>
    <li *ngFor="let item of data">
      {{item}}
    </li>
  </ul>
</ion-content>
//----------js代碼
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  title: String = "這是標(biāo)題";
  keyword: String;
  data: Array<Number> = [3, 4, 5, 6, 7, 8, 9];
  constructor(public navCtrl: NavController) {
  }
}
簡單數(shù)據(jù)綁定演示.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市塞弊,隨后出現(xiàn)的幾起案子漱逸,更是在濱河造成了極大的恐慌泪姨,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饰抒,死亡現(xiàn)場離奇詭異肮砾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)袋坑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門仗处,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人枣宫,你說我怎么就攤上這事婆誓。” “怎么了也颤?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵洋幻,是天一觀的道長。 經(jīng)常有香客問我翅娶,道長文留,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任竭沫,我火速辦了婚禮燥翅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘输吏。我一直安慰自己权旷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布贯溅。 她就那樣靜靜地躺著拄氯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪它浅。 梳的紋絲不亂的頭發(fā)上译柏,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機(jī)與錄音姐霍,去河邊找鬼鄙麦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛镊折,可吹牛的內(nèi)容都是我干的胯府。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼恨胚,長吁一口氣:“原來是場噩夢啊……” “哼骂因!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赃泡,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤寒波,失蹤者是張志新(化名)和其女友劉穎乘盼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俄烁,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绸栅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了页屠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粹胯。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卷中,靈堂內(nèi)的尸體忽然破棺而出矛双,到底是詐尸還是另有隱情,我是刑警寧澤蟆豫,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站懒闷,受9級特大地震影響十减,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜愤估,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一帮辟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玩焰,春花似錦由驹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至默刚,卻和暖如春甥郑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荤西。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工澜搅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邪锌。 一個(gè)月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓勉躺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親觅丰。 傳聞我的和親對象是個(gè)殘疾皇子饵溅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349