Ionic3开发教程 - 开发(2)

2023-11-19

Ionic3开发系列教程Ionic3开发教程 - 环境准备(1)Ionic3开发教程 - 开发(2)Ionic3开发教程 - 发布Android版本(3)Ionic3开发教程 - 发布IOS版本(4)Ionic3开发教程 - 更新(5)

本文中介绍的Ionic3.20.0是基于Angular5.2.11的一套App混合开发框架;这里主要介绍Ionic3框架开发基本概念,深入开发请移步:ionic官网

整体使用下来和Angular有以下不同:
1.路由配置方式不同
2.页面加载生命周期钩子不同
3.页面模块化

项目目录结构一览:

image.png

当打开App时,文件加载顺序是:
1、index.html
2、app/main.js
3、app/app.module.ts
4、app/app.component.ts
5、app/app.component.ts中rootPage配置的首页面

常用cli命令:

  • 新建项目:Ionic start App tabs
  • 运行项目:ionic serve
  • 打包:ionic cordova build android/ios
  • 查看环境:ionic info
  • 新建页面:ionic generate page Login
  • 新建组件:ionic generate component dropdownlist
    查看更多:Ionic CLI Documentation

页面制作

一、创建页面
执行命令Ionic g page login,生成4个文件,如下图:

image.png
二、页面跳转
Ionic3中页面跳转由导航控制器 (NavController)控制,每个导航控制器存放当前导航下所有页面记录。 ion-tabs组件中含有多个彼此独立的导航控制器。
常用操作: push(前进)pop(回退)setRoot(设置首页)popToRoot(回到首页)等等。查看 更多方法 代码案例:
import { Component } from '@angular/core';
import { IonicPage, NavController } from 'ionic-angular';

@IonicPage(
  { name: "login" }//配置页面名称,用于:this.navCtrl.setRoot(页面名称);
)
@Component({
  selector: 'page-login',
  templateUrl: 'login.html',
})
export class LoginPage {
  constructor(public navCtrl: NavController) { }

  go1() {
    this.navCtrl.setRoot("main");//清空导航日志栈,添加main到第一个;
  }
  go2() {
    this.navCtrl.push("main", { deftype: 1 });//导航日志栈中添加main页面;
  }
  back() {
    this.navCtrl.pop();//导航日志栈中删除当前页面,回退到上一个页面;
  }
}

要用好Ionic3需要清楚ionicpageionicpagemodule作用,他们实现了页面模块化:https://ionicframework.com/docs/v3/api/navigation/IonicPage/https://ionicframework.com/docs/v3/api/IonicPageModule/

三、获取参数
在用this.navCtrl.push("main", { deftype: 1 });跳转时,传入的参数可以用NavParams来获取;代码演示:

import { Component } from '@angular/core';
import { IonicPage, NavParams } from 'ionic-angular';

@IonicPage({ name: "main" })
@Component({
  selector: 'page-main',
  templateUrl: 'main.html',
})
export class MainPage {
  constructor(public navParams: NavParams) {
    console.log(this.navParams.get("deftype"));//获取this.navCtrl.push("main", { deftype: 1 });中的deftype
  }
}

四、使用自定义服务
执行Ionic g provider httppost,会在providers目录生成一个httppost目录,app.module.ts自动在providers配置项添加httppost依赖。服务调用案例:

//----------LoginPage页面调用http-post服务
import { HttpPostProvider } from './../http-post/http-post';
export class LoginPage {
  constructor(public httpPost: HttpPostProvider) {}
  data(param) {
    return this.httpPost.query(param);
  }
}

//----------http-post服务代码
import { Injectable } from '@angular/core';
@Injectable()
export class HttpPostProvider {
  constructor() { }

  query(urlModel) {
    //。。。代码
  }
}

五、数据绑定

//----------模板文件
<ion-header>
  <ion-navbar>
    <ion-title>Home</ion-title>
  </ion-navbar>
</ion-header>
<ion-content padding>
  <h2>{{title}}</h2>
  <p>
    <ion-input type="text" [(ngModel)]="keyword" placeholder="请输入账号" #username></ion-input>
  </p>
  <p>
    {{keyword}}
  </p>
  <ul>
    <li *ngFor="let item of data">
      {{item}}
    </li>
  </ul>
</ion-content>
//----------js代码
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  title: String = "这是标题";
  keyword: String;
  data: Array<Number> = [3, 4, 5, 6, 7, 8, 9];
  constructor(public navCtrl: NavController) {
  }
}
简单数据绑定演示.gif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ionic3开发教程 - 开发(2) 的相关文章

随机推荐

  • 华为OD机试 - 路灯照明问题(Java)

    题目描述 在一条笔直的公路上安装了N个路灯 从位置0开始安装 路灯之间间距固定为100米 每个路灯都有自己的照明半径 请计算第一个路灯和最后一个路灯之间 无法照明的区间的长度和 输入描述 第一行为一个数N 表示路灯个数 1 lt N lt
  • 课程设计总结

    1 政府职能部门 望细分 具体 课程压缩所致 2 企业家 结构好 利于规划 参考 强烈希望协调与管理融合进来 3 工程师 技术人员 指导行强 望精化 深化 细化 4 学生 利于未来规划 创业 就业 发展 学习方向等等 老师总结课程缺陷 1
  • 虚拟机VMware的安装及使用

    一 虚拟机VMware的安装 1 准备工作 1 需要软件VMware安装包 VMware下载地址 http www uzzf com soft 51188 html 2 需要一个系统镜像 windows系统 http www xitongc
  • 【计算机视觉】最后显示的CIFAR-100数据集照片很模糊怎么解决?

    文章目录 一 前言 二 如何解决 2 1 使用图像增强技术 2 2 使用插值方法 2 3 使用更高分辨率的图像数据集 2 4 手动调整图像尺寸 三 总结 一 前言 如果从CIFAR 100数据集加载的图像显示模糊 可能有几个可能的原因 分辨
  • 小程序中里的bindinput_微信小程序中input标签的使用方法(附代码)

    本篇文章给大家带来的内容是关于微信小程序中input标签的使用方法 附代码 有一定的参考价值 有需要的朋友可以参考一下 希望对你有所帮助 在开发过程中经常遇到这样的需求 用户只能输入数字并且只保留小数点两位 虽然我们可以在提交表单的时候进行
  • [ASM C/C++] C函数调用分析

    在执行程序时 操作系统为进程分配一块栈空间来保存函数栈帧 esp寄存器总是指向栈顶 x86平台上这个栈是从高地址向低地址增长的 每次调用一个函数都要分配一个栈帧来保存参数和局部变量 C函数参数是按从右到左的顺序入栈的 各个堆栈桢之间是通过把
  • 多线程(1):互斥锁

    leetcode 1114题 按序打印 给你一个类 public class Foo public void first print first public void second print second public void thi
  • 【Unity Shader】Shadow Caster、RenderType和_CameraDepthTexture

    当我们制作某些屏幕特效时 需要取到屏幕的深度图或法线图 比如ssao 景深等 另外像是制作软粒子shader 体积雾等也需要取到深度图 以计算深度差等 unity提供了两个内置的纹理 CameraDepthTexture和 CameraDe
  • fabric 环境快速搭建--Ubuntu20.04系统下使用fabric官方脚本搭建

    由于是初识hyper ledger fabric在安装的时候遇到了很多的问题 最后在师兄的帮助下终于删了从头到尾安装了一遍 因此想记录一下 并且给和我遇到相同问题的小伙伴提供一些帮助 如果你是萌新 找我就对啦 一 下载虚拟机VMware 直
  • 纯css画三角形及气泡样式的简单画法

    在做项目的过程中 遇到了要写一个气泡的样式 先布局了矩形部分 但小三角形的旗气泡遇到一点困难 后来梳理了一下 以此记录 首先是三角形的画法 三角形的原理就是矩形 然后分成四个三角形 一般使用border来画一个三角形 如下图所示 我们给一个
  • 云服务器木马文件该如何应对,云服务器木马入侵怎么办?服务器中木马怎么排查?...

    由于云服务器的扩展方便 并且能够减少硬件方面的维护成本 因此使用云服务器的用户数量越来越多 但是云服务器也同样存在安全方面的隐患 被入侵的案列也是时有发生 那么云服务器木马入侵怎么办 服务器中木马怎么排查 我们来了解下吧 云服务器木马入侵怎
  • java中抽象工厂模式_Java设计模式之抽象工厂模式

    转自http blog csdn net jason0539 article details 44976775 本文继续介绍23种设计模式系列之抽象工厂模式 前面已经介绍过简单工厂模式和工厂方法模式 这里继续介绍第三种工厂模式 抽象工厂模式
  • js倒计时

    html部分代码 div class time span 60 span span s span div js部分代码 var second document getElementById second var m 60 var time
  • 计算机产业能否迅速发展,工控机产业迅速发展:未来体系结构将更具交互性与可操作性...

    工控机 Industrial Personal Computer IPC 即工业控制计算机 是一种采用总线结构 对生产过程及机电设备 工艺装备进行检测与控制的工具总称 工控机具有重要的计算机属性和特征 如具有计算机CPU 硬盘 内存 外设及
  • 50行Python代码实现代理服务器的详细教程

    代理服务器是一种位于客户端与目标服务器之间的中间服务器 它可以代表客户端发送请求 并将响应返回给客户端 通过搭建自己的代理服务器 我们可以实现请求的拦截 修改和转发等功能 本文将为大家介绍如何使用50行Python代码实现代理服务器 一 准
  • [QT编程系列-37]:数据存储 - 日志文件、日志等级的支持:qDebug、Log4Qt

    目录 1 概述 2 qDebug 2 1 概述 2 2 qDebug对调试等级的支持 通过不同的宏来实现 2 3 qt日志等级的设置 1 概述 在 Qt 中 日志文件的支持通常是通过日志库 日志框架或自定义代码实现的 Qt 本身没有提供内置
  • vue3中实现音频播放器APlayer

    前言 vue2的时候 分享了一个很好用的插件是vue aplayer 但是他是不支持vue3的 这里分享vue3使用APlayer来实现一个播放器的方法 实现效果 官方 git地址 点我 api地址 点我 实现步骤 1 安装 npm npm
  • Spring Boot 过滤器、监听器和拦截器使用

    1 过滤器和监听器 Spring Boot中对于过滤器和监听器的使用跟一般web工程中使用方式没什么不同 使用注解方式就可以快速创建 只是要使用注解方式需要在Application类加上 ServletComponentScan 注解表明开
  • LIO-SAM运行自己数据包遇到的问题解决--SLAM不学无数术小问题

    LIO SAM 成功适配自己数据集 注意本文测试环境 Ubuntu18 04 ROS melodic版本 笔者用到的硬件以简单参数 激光雷达 速腾聚创16线激光雷达 RS Lidar 16 IMU 超核电子CH110型 9轴惯导 使用频率1
  • Ionic3开发教程 - 开发(2)

    Ionic3开发系列教程Ionic3开发教程 环境准备 1 Ionic3开发教程 开发 2 Ionic3开发教程 发布Android版本 3 Ionic3开发教程 发布IOS版本 4 Ionic3开发教程 更新 5 本文中介绍的Ionic3