前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【开发指南】(三)认识ionic3

【开发指南】(三)认识ionic3

作者头像
IT晴天
发布2018-08-20 10:07:57
2.7K0
发布2018-08-20 10:07:57
举报
文章被收录于专栏:ionic3+

如果你要做一个app应用,你有最少三种方式:原生开发、加壳在线WebApp开发与混合式开发。

三者简单说明如下:

原生开发就是用原生支持的开发语言,调用原生SDK开发;

加壳在线WebApp是在一个WebView容器执行,网页部署在服务器,基本不调用原生功能;

而混合式开发,如果有了解过一些的话,那一定应该听说过PhoneGap/Cordova和React Native,两项技术都可以让开发人员使用Web技术开发出媲美原生App的移动应用,但是两者使用了不同的技术特征。

混合式开发,即Hybird,至今可以说发展到第三代了,第一代和上述WebApp差不多,基于WebView + Cordova技术,不同的是网页放在了本地,通过获取网络接口数据实现展示,使用js调用原生功能;第二代以React Native为代表,业务及虚拟页面通过js实现,然后通过js桥接,使用原生界面渲染,也就是说,它比第一代增强了页面显示的功能,等到第三代了,通过编译时把js桥接部分也省掉,直接生成原生可执行的代码,把性能又提高了一个档次。

三者对比,原生开发性能高,但相应兼顾多个平台的开发成本、维护成本也高;加壳在线WebApp反之,开发方便但性能和功能有很大局限性;而混合式应用介于中间,兼具优缺点。而平常所听到的跨平台开发,一般指的是混合式开发。


此文中的主角Ionic,就是Hybird技术中的第一代代表,有人会问,既然都发展到第三代了,还有必要学习吗?个人认为有的,首先在长期发展中它已经很成熟,基本有的坑别人都踩过了,其次,它对开发人员技术没有那么苛刻,就算没有具备原生开发的能力,也能很容易实现多端并行开发,再者,PWA是下一代前端技术趋势之一。

说了一堆,也许有人会问:“那Ionic其实是啥?“,简单来说,Ionic是一套大而全的UI框架!Hybird应用Cordova技术,它只提供了使用JavaScript调用Native功能,在开发的时候还需要开发人员自己去实现诸如样式美化、页面切换、数据展示、弹出框、Modal窗体、日期选择器等功能或组件,为了提高开发效率,出现了各种前端框架,如国外的Ionic、JQuery Mobile UI、Sencha Touch、Framework 7,国内的WUI、AmazeUI、腾讯、淘宝团队的ui等。其中,Ionic目前是Cordova开发技术阵营中最热门的技术之一,它对Angular进行了封装,提供了一套适配各移动平台UI风格的前端组件,可以让开发人员免去调试大量CSS的工作,专注业务逻辑开发即可。而路由、网络模块、指令、管道、服务等属于angular的技术范畴。

Ionic1基于Angular1开发。由于AngularJS 1.x版本在性能上已经很难有较大提升,后来微软和google联合推出了全新设计的基于TypeScript的Angular2,这是对于原始版本完全的重写。一些语法和架构都有了变化,在此基础上Ionic2也同步发展。等到angular2的更新到了一定版本,一些依赖库分属于2和3,为了便于版本的统一管理,直接跳到了angular4,其实angualr2和4两者的变化不算太多。相应的ionic2也同步升级到3。

或许有人会说,ionic2才接触没多久,结果又升到ionic3了,会不会太快不适应?其实ionic3基本向下兼容ionic2,除去性能等问题,两个版本变更编码直观感受深点的,就是懒加载和路由的调整(新版懒加载变得更加简单,利于web版开发和加快页面首屏加载),另外还有内置指令的更灵活化,其它变化不大,具体更新如下:

Angular 4.0 新的版本下,改进 AOT 编译器,分离 animations 包,缩小生成后的代码量,运行更快,改进ngIf 和ngFor 等具体内容可以访问angular4更新来查看。 typescript 新版的支持 这一次的更新将提升typescript应用构建和类型检查的速度并且引入了对mix-in的支持等。 @IonicPage装饰器 ionic2中导航器不是基于url的,如果想使用url访问就要通过DeepLinker来实现,这是比较麻烦的,而在新版本中可以通过@IonicPage装饰器来实现。并且可以更轻松的在项目中设置延迟加载,设置延迟加载页面的优先级,并为每个页面自定义配置。 懒加载 Ionic3.0版本开始,支持了延迟加载,我们可以将某些模块设置为延时加载,只有用户打开相关的页面的时候,这个模块所在的js才会被下载,这样能减少用户初次下载的文件的大小。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.08.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档