ionic2學習文檔

概述

截止到2016.01.03,angularJS 2還處於beta版階段,所以ionic2也還是在 nightly版本。

注意:ionic2是基於angular2的,而angular2又是基於ES6的。所以不懂ES6的人得先去學習ES6,然後再學angualr2,最後學習ionic2。

安裝

像ionic1一樣,ionic2同樣能使用ionic CLI或者GUI工具快速的被創建,打包,和運行。

安裝環境要求

  • node.js 4.2.x
  • npm 3.x

nodejs下載地址:
- 官方下載(可能會很慢,更有可能會下載出錯,你懂得)
- 我的百度雲下載

nodejs安裝之後,查看npm版本可能是2.7.x,或者說你的npm版本號小於3.x的話,你需要升級npm,升級方法看這裏,升級到那個版本,版本號查看看這裏

安裝ionic2 CLI

用NPM安裝ionic@beta

npm install -g ionic@beta

上面的命令可能會很慢,而且容易出錯。在國內環境下要想快速安裝請用下面的指令,命令使用了npm淘寶鏡像,安裝應該進行的比較快。

npm install -g ionic@beta --registry=https://registry.npm.taobao.org

創建ionic 2項目

運行以下命令來創建一個ionic2項目

ionic start myFirstIonic2Project --v2

同樣的,上面命令可能很慢,下面的命令會快一些

ionic start myFirstIonic2Project --v2 /--registry=https://registry.npm.taobao.org1.4 

運行項目

進到剛纔建立的myFirstIonic2Project 目錄

cd myFirstIonic2Project 

運行項目

ionic serve

然後你就會看到瀏覽器裏自動彈出一個窗口,你的第一個 ionic 2 項目已經啓動起來了

項目模板

在ionic1中,官方提供的項目模板有三種:

  • blank(默認不寫即爲blank)
  • tabs
  • sidemenus
ionic start myFirstIonic1Project [blank/tabs/sidemenus]

ionic2增加了一個新的模板:tutorial

創建一個新的ionic2APP

ionic start myFirstIonic2Project tutorial --v2

遷移

遷移的概念

ionic2構建在angular2之上,這是一個完整的可複用的原始框架。你所知道的所有部分都在那裏,但有新的語法和結構的變化,開發人員需要了解和學習對於angular2的一些變化,學習angular2

ionic2,大家不必感到很陌生(應該感覺很熟悉,這是廢話),因爲ionic1版本中的所有概念仍在ionic2版本中。雖然他們可能看起來有點不同。例如ionic1中的視圖和控制器,在ionic2中,他們已經合併爲一個實例。

列舉一個在ionic1中的示例:

.config(function($stateProvider){
    $stateProvider
    .state('main',{
        url:'/',
        templateUrl:'templates/main.html',
        controller:'MainCtrl'
    })
})

.controller('MainCtrl',function(){

})

上面的代碼能在ionic2中可以寫成這樣:

@Page({
    templateUrl:'main/main.html'
})

export class MainCmp{
    constructor(){

    }
}

其他的變化,如navigation的變化,有很大的不同,但我們保證有很好的理由去改變。現在,您可以將組件視爲任意視圖,並且以任何方式導航到它們。這使得導航更加靈活,允許更多的本地風格的導航棧。

從 angular1遷移

而angular2要求應用程序必須更新的語法變化,開發商可以主動和確保他們的應用程序是可通過以下最佳實踐和John Papa’s Angular Style guide Todd Motto’s Angular Style guide。這兩個將爲你提供一個步驟,你可以採取準備遷移的代碼。

ControllerAs語法

ControllerAs的語法是angular1的一個特徵。他可以直接綁定數據到$scope,你能直接綁定到控制器的指令實例。這使得遷移一個angular1.xController到angualr2是非常簡單的。

index.html

<ion-content ng-controller="MainCtrl">
    <ion-item>
        {{data.text}}
    </ion-item>
</ion-content>

app.js

.controller('MainCtrl',function($scope){
    $scope.data = {
        text:'Hello World'
    }
})

轉變ControllerAs的語法,你只需要做一些小小的改變

index.html

<ion-content ng-controller="MainCtrl as main">
    <ion-item>
        {{main.data.text}}
    </ion-item>
</ion-content>

app.js

.controller('MainCtrl',function(){
    this.data = {
        text:'Hello World'
    }
})

TypeScript

TypeScript是你代碼中的JavaScript提供的ESClasses和類型註解的一個超集。現在,你可以採用TypeScript,很容易的編寫你的代碼就像編寫ES6 Classes一樣,輕鬆轉移到ionic2。最好的部分是,任何有效的JavaScript也是有效的TypeScript,所以你可以將你的代碼一個片段一個片段的轉換。在你編寫controller之前,你可以很容易地將它轉換成一個TypeScript 類就像這樣

app.js

.controller('MainCtrl',function(){
    this.data = {
        text:'Hello World'
    }
})

app.ts

export class MainCtrl{
    constructor(){
        this.data = {
            text:'Hello World'
        }
    }
}

項目架構

With Angular 1, it was a practice to keep all your JavaScript together and separate from your templates. Since Ionic 2 and Angular 2 will be moving to a component base setup, you can reorganize your project to help mentally enforce that concept. So a project whose directory looks like this…

|-www/
|
|–js/
|–|-app.js
|–|-HomeCtrl.js
|–|-DetailCtrl.js
|
|–templates/
|–|-Home.html
|–|-Detail.html
|
|-index.html
像下面這樣組織結構
|-www/
|
|–Home/
|–|-HomeCtrl.js
|–|-Home.html
|
|–Detail/
|–|-DetailCtrl.js
|–|-Detail.html
|
|-index.html
|-app.js

組織你的項目,這樣可以幫助你的思維模式,你的應用程序的視圖/狀態是一個組件,一個模板和控制器。

一些概念

核心概念

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章