Ionic -- Ionic1与Ionic2的区别
来源:互联网 发布:大连知你创业基地 编辑:程序博客网 时间:2024/05/18 23:27
现在公司使用ionic1的框架做项目,ionic2发布之后想把项目迁到ionic2上来,所以研究一下,发现把项目从ionic1迁入到ionic2是有点。。。
Ionic专注于以标准的HTML、CSS、和JavaScript来构建的移动站点,并可以通过Cordova打包成移动App,只需要编写一次代码,就可以分别部署到Ios、Android等多种移动平台上。
接下来我们介绍一下这两个框架的区别:
1. Ionic2与一代相比有较大的变化,基于最新的Angular 2,使用TypeScript进行开发(如果没有接触过Angularjs或ionic1,完全不用担心,直接从ionic2开始学习即可)
2.Ionic2借助Angular2的革命性改进,与1.x版本相比具有以下优势:
A.更快的性能
http://blog.ionic.io/wp-content/uploads/2016/09/beta11-vs-beta12.gif(点击打开链接)
B.更清晰的项目结构
C.更强大的CLI
D.更友好的页面导航
E.更强大的模板语法
F.更高效的开发体验
3.Ionic2基于Angular2进行构建,这是对于原始版本完全的重写。一些语法和架构都有了变化,开发者需要注意。在Ionic1中使用的views和controller等,在Ionic2中都合并到了一块。
4.请保证安装的Node和npm为较新的版本。
5.在Ionic2中,每个组件、页面都只专注于做一件事,它单独有自己的一个目录,有自己的类(Class)、模板文件(Template)和自己的样式文件(在这里我们提倡使用scss)
home.tsimport {Component} from '@angular/core';import {NavController} from 'ionic-angular';@Component({ templateUrl: 'build/pages/home/home.html'})export class HomePage { constructor(private navCtrl: NavController) { }}
home.scss.home { &.xxx{ } .xxx{ }}
home.html<ion-header> <ion-navbar> <ion-title>Home</ion-title> </ion-navbar></ion-header><ion-content padding class="home"> <h2>Welcome to Ionic!</h2> <p> This starter project comes with simple tabs-based layout for apps that are going to primarily use a Tabbed UI. </p> <p> Take a look at the <code>app/</code> directory to add or change tabs, update any existing page or create new pages. </p></ion-content>
6.模板的语法结构
ionic2的模板语法与Ionic1非常相似,但是看起来又有点古怪,其实Ionic2的模板语法更为简洁。我们来看一下对比。
ionic1:<img ng-src="{{photo.image}}" /> ionic2:<img [src]="photo.image" />我们看一下 事件调用: ionic1:<button ng-click="doSomething()"> ionic2:<button (click)="doSomething()">
7.它仅仅是javascript而已
ionic1和angular1都有一些特定的语法,但是追其根本只不过是javascript,也许你对EM6认识不是很深,但是你改变不了 它是ECMAscript标准的事实,也就是说作为一个web前端开发的你,逃不了要学习这项新的语言,如果你感兴趣你可可以试试Typescript, 如果你曾经做过后台开发,我敢肯定你会爱上它,那么你使用ionic2的同时,你是在熟悉未来web的新标准,它会让你成为一个更好的web前端开发者。 直到现在仍然有很大一部分前端开发人员不知道angular,不知道reactjs,甚至EM6和typescript,所以你应该感受到一丝优越感。
jsvascript:this.someData = null;var me = this;doSomething(function(data){ me.someData = data;});看到了么?你问了使用this指针,不得不在函数外面作为变量me的引用,但是你使用了EM6:this.someData = null;doSomething((data) => { this.someData = data;})
7.编译
ionic从平台上讲是基于cordova的封装( 不仅仅是它的CLI
),因此ionic工程也是一个标准的cordova工程,也就是说我们最终给跨平台提供的是www目录的资源文件,但是在ionic2中我们都是在 www的同级目录的app目录进行编码,也是因为我们使用EM6或Typescript写的代码浏览器并不能够直接执行,如果你自己观察ionic2的工 程目录,你会发现Gulp.js的脚本多了几个任务的定义,其实是几个ionic的钩子命令,如ionic
serve,ionic build之类的,其目的是在我们打包,或者浏览器模拟时的
命令执行之前,执行一些gulp任务,其中就是对typescript、scss的编译,是不是感觉很方便,而且最终合并编译到www/build/js目录下,并且很难反编译,也就是说你的app如果被人解包,他只能运行,但如果想拿到你的源码是相当困难的。
介绍一个ionic2入门的文章:https://yanxiaodi.gitbooks.io/ionic2-guide/content/(点击打开链接)
ionic英文网址:http://ionicframework.com/docs/components/#overview(点击打开链接)
- Ionic -- Ionic1与Ionic2的区别
- Ionic2优于Ionic1的6个理由
- ionic1或ionic2、3的安装与启动 Application Err错误
- ionic1 升级到 ionic2
- ionic开发笔记二:ionic2开发的Angular 2语法
- Ionic2使用非ionic-native中的cordova插件的方法
- Ionic2使用非ionic-native中的cordova插件的方法
- ionic2 @ionic-native/camera应用
- Ionic2安装的与项目创建
- Ionic2视图的创建与删除
- ionic 升级到 ionic2报错处理
- ionic2 @ionic-native/camera-preview应用
- ionic2 @ionic-native/barcode-scanner应用
- Ionic + Angularjs + Cordova(Ionic2环境搭建)
- ionic1.3.1迄今为止遇到的bug
- Ionic2系列——Ionic 2 Guide 官方文档中文版
- ionic和ionic2 环境下编写自定义cordova插件
- Ionic2系列——Ionic 2 Guide 官方文档中文版
- Mac 下 Intelij idea 的快捷键
- CentOS6.4+Nginx1.4.2+MySQL5.6.13+PHP5.5.3+xCache3.03(最新LNMP编译安装过程)
- MyISAM与InnoDB的区别
- vmware虚拟机Linux(redhat)上用户密码忘记了怎么办?
- Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法
- Ionic -- Ionic1与Ionic2的区别
- 无向连通图中两点间所有路径的算法
- 原生js实现复制对象、扩展对象 类似jquery中的extend()方法
- 数据库概论
- Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法!
- 最大期望算法
- 线性插值法
- ViewPager自动轮播(获取网络资源)
- Android CoordinatorLayout AppBar 上边缘阴影原因