NXT-FE / blog

能效通前端团队博客
MIT License
4 stars 0 forks source link

是否升级至 ionic2 #4

Open pengkobe opened 7 years ago

pengkobe commented 7 years ago

各位可以评论该 Issue. 发表自己的意见。:),此Issue持续更新...

学习资料推荐

Angular2.0视频 by 大漠穷秋,可以跟着项目一起实践。

pengkobe commented 7 years ago

Angular

概念转换

事件机制

以下基本上用的是 broadcast 结合 on 使用( 一定程度上造成了写法的混乱,代码都不见了 ),
现在是 emit 结合 subcribe 使用。

组件/指令

angular2 引入了组件 @component(带模板,相当于1.x中的directive),细分了两种指令

迁移案例( accordion ):http://angular-tips.com/blog/2015/09/migrating-directives-to-angular-2/
Angular1.x : http://plnkr.co/edit/tYPUDDJwFMsjWjyDznwt
Angular2 : http://plnkr.co/edit/Fs4oR956gd6gQmHdFhHS?p=info

directive

参考:http://blog.csdn.net/shenlei19911210/article/details/53218074
elem.nativeElement 对象到底是什么,需要整清楚

细节

参考链接:https://angular.cn/docs/ts/latest/api/

pengkobe commented 7 years ago

Cordova

ionic2 引进了 ionic-native,去掉了以前的构建方式,当前插件的安装方式并没变,还是需要手动进行安装。
文档:http://ionicframework.com/docs/v2/native/

细节

ionic-native

文档:http://ionicframework.com/docs/v2/native/

案例

安装

npm install --save ionic-native
ionic plugin add cordova-plugin-datepicker

使用

import {DatePicker} from 'ionic-native';
constructor(platform: Platform) {
  platform.ready().then(() => {
    let options = {
      date: new Date(),
      mode: 'date'
    }

    DatePicker.show(options).then(
      date => {
        alert('Selected date: ' + date);
      },
      error => {
        alert('Error: ' + error);
      }
    );
  });
}
// 上述代码可以替换
if (window.cordova) {}

参考链接:http://stackoverflow.com/questions/35815279/ionic-2-datepicker

pengkobe commented 7 years ago

Ionic

配置

事件

参考链接:http://ionicframework.com/docs/v2/api/util/Events/

// 引入
import {Events} from 'ionic-angular'
// DI
public events: Events
// 使用
events.publish('user:created', user, Date.now());
events.subscribe('user:created', (user, time) => {
  // user and time are the same arguments passed in `events.publish(user, time)`
  console.log('Welcome', user, 'at', time);
});

路由

// 导入
 imports: [
    IonicModule.forRoot(MyApp, {}, {
      links:ROUTES
    })
  ]
// ROUTES
[ { path: 'home',  component: HomePage }]
// 使用
import { NavController } from 'ionic-angular';
this.navCtrl.push(AboutPage, {});

组件