basic4android7.01,01 ionic-basic

ionic

ionic 是一个强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framework )。 可以帮助您使用 Web 技术,比如 HTML、CSS 和 Javascript 构建接近原生体验的移动应用程序。

ionic 主要关注外观和体验,以及和你的应用程序的 UI 交互,特别适合用于基于 Hybird 模式的 HTML5 移动应用程序开发。

ionic是一个轻量的手机UI库,具有速度快,界面现代化、美观等特点。为了解决其他一些UI库在手机上运行缓慢的问题,它直接放弃了IOS6和Android4.1以下的版本支持,来获取更好的使用体验。

项目搭建

环境搭建

# 在npm环境下安装ionic cordova

npm install -g ionic@3.20.0

npm install –g cordova@8.0.0

项目创建

命令:ionic start 项目名 参数(blank/tabs/sidemenu)

# 例如 ionic start ionicApp tabs

# 参数说明:

# blank : 空白项目

# tabs : 带底部切换的项目

# sidemenu: 带侧边栏的项目

项目启动

命令:ionic serve

目录结构分析

855dcb66fef7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ionic-basic-01.png

路由配置

路由配置 -- tabs

实现在应用程序的不同页面之间导航,是的容器。selectedIndex 属性可设置首次加载时的默认加载项,第一次加载时,默认选择的选项卡的索引值。如果没有设置索引,它将默认使用0,即第一个选项卡。

添加路由选项

root 属性设置该项加载的页面

tabTitle 属性设置该项上显示的可选文本

tabIcon 设置可选图标

// tabs.ts

import { Component } from '@angular/core';

import { AboutPage } from '../about/about';

import { ContactPage } from '../contact/contact';

import { HomePage } from '../home/home';

@Component({

templateUrl: 'tabs.html'

})

export class TabsPage {

tab1Root = HomePage;

tab2Root = AboutPage;

tab3Root = ContactPage;

constructor() {

}

}

新增页面配置路由

创建页面

命令:ionic g page 页面名

# ionic g page person

在app.module.ts 引入组件,注册组件

// import {页面名Page }from '../pages/页面名/页面名';

// 在 declarations和entryComponents 中注册

...

import {PersonPage} from '../pages/person/person';

@NgModule({

declarations: [

...

PersonPage,

],

imports: [

BrowserModule,

IonicModule.forRoot(MyApp)

],

bootstrap: [IonicApp],

entryComponents: [

...

PersonPage,

],

providers: [

StatusBar,

SplashScreen,

{provide: ErrorHandler, useClass: IonicErrorHandler}

]

})

export class AppModule {}

在 tabs.ts 页面引入组件,配置组件

import { Component } from '@angular/core';

import { AboutPage } from '../about/about';

import { ContactPage } from '../contact/contact';

import { HomePage } from '../home/home';

import {PersonPage} from '../person/person'// 在tab.ts中引入组件

@Component({

templateUrl: 'tabs.html'

})

export class TabsPage {

tab1Root = HomePage;

tab2Root = AboutPage;

tab3Root = ContactPage;

tab4Root = PersonPage;

tab5Root = 'APage';//对于页面有很多静态资源的情况下(比如网商购物页面),为了节省用户流量和提高页面性能,可以在用户浏览到当前资源的时候,再对资源进行请求和加载。 可以使用懒加载的模式 在加载的时候调用资源

constructor() {

}

}

视图切换

NavController

NavController 代表特定历史的视图数组,这个数组类似于一个堆栈

该数组可以通过推送和弹出视图或者在历史中的任意位置插入和删除视图来控制整个应用程序。

// 注入NavController

//import{ NavController }from 'ionic-angular';

// 构造函数中声明:constructor(publicnavCtrl: NavController) { }

import { Component } from '@angular/core';

import { NavController } from 'ionic-angular';

import { APage } from '../a/a';

@Component({

selector: 'page-home',

templateUrl: 'home.html'

})

export class HomePage {

constructor(public navCtrl: NavController) {

}

goSub(){

this.navCtrl.push(APage,{id:1});

}

}

NavController常用方法

push (page,params) -- 将新视图推入导航堆栈

page: 推入导航堆栈的组件名

params :传递给下一个视图的数据(对象类型)

pop-- 从导航堆栈中删除视图

Home

跳转

import { Component } from '@angular/core';

import { NavController } from 'ionic-angular';

import { APage } from '../a/a';// 需要引入

@Component({

selector: 'page-home',

templateUrl: 'home.html'

})

export class HomePage {

constructor(public navCtrl: NavController) {

}

goSub(){

this.navCtrl.push(APage);

}

}

855dcb66fef7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ionic-basic-02.gif

数据接收

引入 NavParams :import{NavParams} from 'ionic-angular';

data属性:接收的数据,数据将以对象的形式进行展示

get方法:得到相对应的属性的属性值

// home.ts

import { Component } from '@angular/core';

import { NavController } from 'ionic-angular';

import { APage } from '../a/a';// 需要引入

@Component({

selector: 'page-home',

templateUrl: 'home.html'

})

export class HomePage {

constructor(public navCtrl: NavController) {

}

goSub(){

this.navCtrl.push(APage,{id:1});

}

}

// a.ts

import { Component } from '@angular/core';

import { IonicPage, NavController, NavParams } from 'ionic-angular';

@IonicPage()

@Component({

selector: 'page-a',

templateUrl: 'a.html',

})

export class APage {

constructor(public navCtrl: NavController, public navParams: NavParams) {

}

ionViewDidLoad() {

// console.log(this.navParams.data.id);// this.navParams.data表示的是这个数据对象

console.log(this.navParams.get('id'));

}

}

855dcb66fef7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ionic-basic-03.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值