說明
因為同樣是作為 Ionic3 小白,所以很多東西都是自己摸索出來的,可能有很多不合理的地方,請多多指正。
效果圖
細節說明
一:組件、頁面均采用 懶加載;
二:頁面的頭部標題欄,采用了組件化的方式,用來提高代碼的公用率;
三:頁面布局采用的是 ion-grid、ion-list(會做一個總結);
四:通過使用了一些 angularjs 語法,ngFor、ngStyle、通過import Events 實現數據的回調、ngZone進行頁面的重構、數據的雙向綁定、@inpput()、@ViewChild()
創建組件
執行命令:ionic g component 組件名稱
命令執行完成后,如圖生成三個文件(其中.module.ts文件是我自己加的,用來實現懶加載),第一次創建還會有一個componen.module.ts文件。
組件調用時的名稱,在 app-header.ts 文件中進行規定:selector 規定了調用時,元素的名稱<app-header></app-header>
組建中關於 app-header.module.ts 懶加載的聲明:

import { NgModule } from "../../../node_modules/@angular/core"; import { AppHeaderComponent } from "./app-header"; import { IonicPageModule } from "../../../node_modules/ionic-angular"; @NgModule({ declarations:[ AppHeaderComponent ], imports:[ IonicPageModule.forChild(AppHeaderComponent) ] }) export class AppHeaderComponentModule{ }
關於 components.module.ts 文件中的聲明:

import { NgModule } from '@angular/core'; import { AppHeaderComponent } from './app-header/app-header'; import { CommonModule } from '../../node_modules/@angular/common'; import { IonicModule } from '../../node_modules/ionic-angular'; @NgModule({ declarations: [AppHeaderComponent], imports: [ CommonModule, IonicModule ], exports: [AppHeaderComponent] }) export class ComponentsModule {}
在相關頁面 .ts 文件中導入插件:(我這里是在 finder.html 頁面中進行的引用)

import { IonicPageModule } from 'ionic-angular'; import { FinderPage } from './finder'; import { NgModule } from "@angular/core"; import { ComponentsModule } from '../../../components/components.module'; @NgModule({ declarations:[ FinderPage ], imports:[ IonicPageModule.forChild(FinderPage), ComponentsModule ] }) export class FinderPageModule{ }
在相關的頁面中引用插件:其中關於 search-show、title屬性的定義意義會作另講,詳細說明。