我们有一个Ionic 3项目,我们在其中对默认的标题样式进行了大的修改。每个离子标题元素都分配有一个“大标题”类,用于更新颜色,按钮布局和标题高度。样式应用于app.scss
文件中。
标题样式的更新似乎对性能有重大影响。看起来也可以在加载视图后应用样式。有一个简短的“打cup”,其中使用了旧的默认高度。
是否存在一种“适当”的方式来修改标头,使资源更加友好?
作为参考,这是正在应用的CSS:
/* Header Overwrite */
ion-header.big-header {
border-bottom: none !important;
/*box-shadow: 0px 4px 17px rgba(0,0,0,0.30);*/
.bar-buttons-md[end] {
float:right;
padding-top:4px;
padding-right:4px;
}
ion-navbar.toolbar {
display:block;
}
ion-buttons, .bar-button-menutoggle {
display:inline-block;
width:50%;
margin:0px;
}
.toolbar-title-md {
font-size:36px !important;
padding-top:16px !important;
font-weight:normal !important;
overflow:visible !important;
}
.toolbar-md {
min-height: 112px;
.toolbar-background {
background-color: #019ae8 !important;
background: #019ae8 !important;
}
ion-icon {
display:block;
}
ion-icon:before {
color: #FFFFFF !important;
}
.bar-button-menutoggle {
padding-top:12px;
padding-left:12px;
text-align:left !important;
.button-inner {
display:block;
}
}
}
.header-note {
position: absolute;
bottom: 0px;
margin: 0px;
font-size: 10px;
width: 100%;
text-align: right;
padding-bottom: 5px;
padding-right: 8px;
color: white;
}
.big-header-descriptor {
display:none;
position: absolute;
top: 2px;
font-size: 14px;
text-transform:uppercase;
}
}
答案 0 :(得分:0)
您可以创建共享的自定义标头组件。
<ion-navbar>
<button *ngIf="header_data.ismenu" ion-button icon-only menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<button *ngIf="header_data.ishome" class="algo-header-home-icon" ion-button icon-only (click)="homeClick()">
<ion-icon class="ion-home" name="home"></ion-icon>
</button>
<ion-title class="header-title" [ngClass]="{'ishome-title': header_data.ishome,'ismeun-centre': !header_data.ishome}">
{{header_data.title}}
</ion-title>
</ion-navbar>
import { Component,Input } from '@angular/core';
import { NavController } from 'ionic-angular';
import { HomePage } from '../../pages/home/home';
@Component({
selector: 'custom-header',
templateUrl: 'custom-header.html'
})
export class CustomHeaderComponent {
header_data: any;
constructor(public navCtrl: NavController) {}
@Input()
set header(header_data: any) {
this.header_data=header_data;
}
get header() {
return this.header_data;
}
homeClick() {
this.navCtrl.setRoot(HomePage);
}
}
并在应用程序页面中使用相同的组件
<ion-header><custom-header [header]="header_data"></custom-header></ion-header>
<ion-content padding class="page-home">
<p>Home Page</p>
</ion-content>
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
header_data:any;
constructor(public navCtrl: NavController) {
this.header_data={ismenu:true,ishome:false,title:"Home"};
}
}
我们必须尽可能避免使用自定义CSS样式,以提高性能。 您可以在--prod模式下构建应用以提高性能
参考:https://www.protectator.ch/post/optimizing-performance-of-an-ionic-3-application
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {AppModule} from './app.module';
import {enableProdMode} from "@angular/core";
enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);