升级到 Ionic 3

本文同时发布到 我的个人博客站点

Ionic 3 正式发布已经近一个月了,很多朋友惊呼 Ionic 2 还没上手 Ionic 3 又发布了,会不会又要花很大精力去学习等。认真研究了下,我发现 Ionic 2 到 Ionic 3 的升级只是一些类库的升级,并不需要像 Ionic 1 到 Ionic 2 那样完全重写代码。下面就花点时间给大家介绍下 Ionic 3 的特性以及如何从 Ionic 2 升级到 Ionic 3。

Ionic 3 的新特性

关于 Ionic 3 的详细说明可以参考官方博客

#0 Angular 4

Angular 4 是在3月底发布的。Angular 4 这次更新大致如下:改进 AOT 编译器,分离 animations 包,缩小生成后的代码量,改进 *ngIf*ngFor 等。详细介绍请参这篇文章

#1 兼容 Typescript 2.1 和 2.2

这个其实就是 Angular 4 带来的新特性。

#2 IonicPage 装饰器

IonicPage 装饰器将 URL 注册到特定页面。Ionic 使用了一套叫做 deeplink 的 URL 系统,当使用 NavController push 到新页面时,URL 随之更新。注意这和 URL routing 是不同的。关于 IonicPage 的详细介绍请参考官方文档

#3 Lazy Loading 懒加载

Lazy Loading 可以在初始化时只加载一些必要的代码,非必要的代码分离出来在需要加载的时候再加载之,理论上能让应用加快一定的启动速度。

升级到 Ionic 3

#0 修改 npm 依赖包

从 Ionic 2 开始使用了 npm 去管理包,所以我们在 package.json 文件的 dependencies 节点中修改依赖项。

  • 修改 ionic-angular 到当前最新的 3.1.1 版本。
  • ionic-angular 依赖 Angular 4.0.2 版本,将所有 @angular/* 开头的包修改为 4.0.2 版本,增加 @angular/animations 包。
  • 删除 ionic-native 包,添加所需的 @ionic-native/* 包,最新版本为 3.6.1
  • rxjs 修改到依赖的 5.1.1 版本。
  • zone.js 修改到依赖的 0.8.5 版本。

修改完成后,执行 npm install 命令,若 npm 仍提示有依赖问题,参考错误提示逐一解决就好。

#1 修改代码以支持 Ionic Native 3.x

参考 Ionic Native 文档 修改 StatusBarSplashScreen 的引用方式。

#2 修改代码以支持 Lazy Loading (非必需)

  • 在每个 Page 对应的目录下新建一个 [pagename].module.ts 文件,代码大致如下:
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { Tabs } from './tabs';

@NgModule({
  declarations: [
    Tabs,
  ],
  imports: [
    IonicPageModule.forChild(Tabs),
  ],
  exports: [
    Tabs
  ]
})
export class AboutModule {}
  • 删除项目中所有 Page 的引入,并将对 Page 类的引用修改成对应 Page 的字符串名称。

错误解决

修改完成后,执行 ionic serve 运行,若有报错,则通过错误信息解决之。
我遇到这个错误:“No provider for ApplicationInitStatus!”

解决办法是在 app.module.ts 文件中添加如下引用:

import { BrowserModule } from '@angular/platform-browser';

...
@NgModule({
  imports: [
    HttpModule, 
    BrowserModule, 
    IonicModule.forRoot(MyApp)
  ]
})

结束的话

到 Ionic 3 的升级并不麻烦,却能让你的应用性能有很大的提升,所以这个升级还是值得的。如果你对升级 Ionic 3 有什么疑问欢迎给我留言,你也可以参考我写的示例项目去尝试解决问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容