國慶節前Ionic2發佈了RC0版本,已經接近正式版了,前不久Angular2和TypeScript2也已經發布了正式版。詳情請參考官方博客:css
http://blog.ionic.io/announcing-the-ionic-2-release-candidate/html
此次升級提升了必定的性能,引進了Angular2的一些新特性,如@NgModule、支持AoT編譯(Ahead of Time)等,項目結構也發生了變化。因此須要花一點時間把beta版本的項目升級到RC0,相對於提高的性能來說,仍是很值得的。android
AoT能夠在build階段預先編譯模板,啓動速度和頁面切換速度都會提升。官方提供了一個beta11和RC0的對比效果圖:webpack
能夠看到,啓用AoT的RC0版本啓動速度大大提高,首頁加載速度比beta11版本快不少。git
除此以外,RC0的build方式也改變了。RC0拋棄了webpack,使用了Rollup。不用再安裝Gulp來管理任務了,用npm scrip來打包。可是對開發者使用來講並無什麼變化,仍是使用Ionic serve命令便可,只是輸出的內容有所變化。採用這種build方式後,自定義打包腳本也變得很容易配置了。可參考Github項目地址:https://github.com/driftyco/ionic-app-scripts。github
項目結構的變化主要體如今引入了@NgModule,源代碼從app目錄移到了src目錄,pages、providers這些目錄都沒有變化。web
對於從beta版本一直跟下來的開發者來講,可能都遇到過API在不一樣版本中用法不一樣的狀況,有的還變來變去,如Alert等組件的用法,顯示一個Alert有的版本要調用Alert的方法有的版本要調用AlertController的方法。RC0也穩定了API用法,應該不會有大的變更了。npm
在編譯模式方面,beta版本之前要本身啓用Angular2的生產模式,RC0就簡單不少,項目模板已經提供了dev模式和prod模式,使用ionic serve命令調試的時候是dev模式,當使用build命令時會自動切換到prod模式,很是方便。prod模式編譯出來的js文件體積大大減小,啓動速度也快了不少。json
其餘還有一些變更,如:數組
一、從新命名了生命週期事件名稱:
ionViewLoaded事件改成ionViewDidLoad
移除了IonViewDidUnload事件
從ViewController中移除了fireOtherLifecycles事件
二、將Storage從ionic-angular中轉移到了一個單獨的module——ionic-storage中,若是用到了該組件須要修改package.json而後npm install。
三、修改了color的用法:
不能直接給一個組件添加color了,必需要改爲屬性的方式,之前能夠這樣用:
<ion-tabs primary>
如今要改爲這樣:
<ion-tabs color="primary">
受影響的組件有:
四、修改了button組件的聲明方式,<button>要改爲<button ion-button>,<a button>改爲<a ion-button>;Icon Button的聲明方式也有所變化。
五、CSS引入方式也變化了。之前要分別引入三個平臺的css,由ionic動態加載,如今只須要如下一行就能夠了:
<link href="build/main.css" rel="stylesheet">
……
我以爲RC0已經能夠進行實際應用了,這幾天把手頭的一個項目升級到了RC0。可是就在我寫這篇blog的時候,剛發現10.13也就是昨天Ionic2發佈了RC1,其中修復了Modal組件沒法觸發ionViewDidLoad事件的bug,這個bug我曾經遇到過。看來離正式版很近了。固然RC0到RC1比較簡單,主要是beta11到RC改動較大。升級步驟以下:
根據官方說明,有兩種升級方式,一種是新建一個新項目,將beta版本的代碼拷過去;一種是直接在beta項目基礎上改。推薦第一種方式,由於RC的項目結構變化比較大,最好仍是新建一個來改。
這樣就基本完成了從beta升級到RC的過程。
常見問題:
build到Android的過程當中,報錯:
Unsupported major.minor version 52.0
這是由於Ionic2RC不支持JDK1.7 版本了,須要升級到JDK1.8才能正常編譯。
整體來講升級到RC仍是很值得的。使用ionic serve命令時,Angular是dev模式:
當使用ionic build android命令時,能夠看到改成了prod即生產模式:
這樣編譯後的啓動速度大大提升。
以上的內容主要參考了官方的升級文檔,把主要的內容翻譯了一下。若是你們有任何升級方面的問題歡迎留言討論。
官方升級說明地址:https://github.com/driftyco/ionic/blob/master/CHANGELOG.md