標籤(空格分隔): Angularcss
ng new my-app
cd my-app ng serve --open
styles.css
爲styles.scss
,同時修改文件 .angular-cli.json 中的:... "styles": [ "styles.scss" ], ...
從新打包。html
./scss
文件夾./mixins
,./utilities
文件夾,添加_mixins.scss
(混合), _reboot.scss
(重置瀏覽器), _utilities.scss
(工具), _variables.scss
(變量)。/src/styles.scss
文件中引用以上:/** * Global styles */ @import "scss/_variables.scss"; @import "scss/_mixins.scss"; @import "scss/_reboot.scss"; @import "scss/_utilities.scss";
注意:Chrome並不支持12px如下的大小 使用rem時候須要注意node
font-awesome
:npm i --save font-awesome
而後在.angularcli.json
中添加:git
... "apps": [{ ... "styles": [ "styles.scss", "../node_modules/font-awesome/scss/font-awesome.scss" ], ... }], ...
將字體文件放在assets
目錄下,這時候引用字體文件的時候,須要將路徑設置爲絕對路徑,參見。最後在style.scss
文件import便可。github
ngx-cookie
:npm i --save ngx-cookie
而後在app.module.ts
中:ajax
... @NgModule({ ... imports: [ CookieModule.forRoot(), ], providers: [ CookieService ] ... }) ...
添加src/services
文件夾,添加ajax.service.ts
(XHR封裝),data-store.service.ts
(全局枚舉/屬性以及接口初始化服務和配置初始化),data-user.service.ts
(用戶帳戶操做信息管理服務), utilities.service.ts
(靜態工具類/公共工具)。npm
在/src/app/中添加app.config.ts
,用於保存全局變量。添加app-routing.module.ts
用於單獨配置應用的路由以及路由懶加載。json
import {RouterModule, Routes} from '@angular/router'; import {NgModule} from '@angular/core'; import {IndexComponent} from '../views/index/index/index.component'; const APP_ROUTES: Routes = [ { path: '', component: IndexComponent } ]; @NgModule({ declarations: [ IndexComponent ], imports: [ RouterModule.forRoot(APP_ROUTES, { useHash: Boolean(history.pushState) === false }) ], exports: [ RouterModule ], providers: [] }) export class AppRoutingModule { }
在app.module.ts
中調用數據初始化:api
... export function AppInit(apiDataService: ApiDataService, userDataService: UserDataService) { apiDataService.InitConfig(); // 初始化配置數據 apiDataService.Init(); // 初始化token userDataService.Init(); // 初始化用戶信息 return () => Observable.of([]); } @Ngmodule({ ... providers: [ ... ApiDataService, UserDataService, { provide: APP_INITIALIZER, useFactory: AppInit, deps: [ApiDataService, UserDataService], multi: true } ... ] ... })
好比咱們有一個帳號登陸account.module.ts
。實現懶加載須要在app-routing.module.ts
中這樣引用:瀏覽器
... const APP_ROUTES: Routes = [ { path: '', component: IndexComponent }, { path: 'account', loadChildren: 'views/account/account.module#AccountModule' } // 實現懶加載 ]; @NgModule({ declarations: [ IndexComponent ], imports: [ RouterModule.forRoot(APP_ROUTES, { useHash: Boolean(history.pushState) === false }) ], exports: [ RouterModule ], providers: [] }) export class AppRoutingModule { }
在瀏覽器中,當出現account.module.chunk.js
的js加載就表示成功了:
應用首次進入的時候會有白屏。能夠添加一些loading動畫使加載過程有更好的用戶體驗。
打開根目錄下的index.html
,能夠在app-root
中填入任何代碼:
... <body> <app-root> <style> app-root { display: flex; justify-content: center; align-items: center; height: 100vh; color: #F4D8D9; text-transform: uppercase; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica, sans-serif; font-size: 25px; text-shadow: 2px 2px 10px rgba(0,0,0,0.2); } body { background: #21ABA5; margin: 0; padding: 0; } @keyframes dots { 50% { transform: translateY(-.4rem); } 100% { transform: translateY(0); } } .d { animation: dots 1.5s ease-out infinite; } .d-2 { animation-delay: .5s; } .d-3 { animation-delay: 1s; } </style> Loading<span class="d">.</span><span class="d d-2">.</span><span class="d d-3">.</span> </app-root> </body> </html>
以上源碼請參見Github。純屬我的看法,若有錯誤疏漏之處望不吝賜教。