angular6.x hash路由
阿新 • • 發佈:2018-11-27
文章參考
路由的兩種策略
- PathLocationStrategy - 預設的策略,支援“HTML 5 pushState”風格。
- HashLocationStrategy - 支援“hash URL”風格。
哪種策略更好?
你必須選擇一種策略,並且在專案的早期就這麼幹。一旦該應用進入了生產階段,要改起來可就不容易了,因為外面已經有了大量對應用 URL 的引用。
幾乎所有的 Angular 專案都會使用預設的 HTML 5 風格。它生成的 URL 更易於被使用者理解,它也為將來做服務端渲染預留了空間。
在伺服器端渲染指定的頁面,是一項可以在該應用首次載入時大幅提升響應速度的技術。那些原本需要十秒甚至更長時間載入的應用,可以預先在服務端渲染好,並在少於一秒的時間內完整呈現在使用者的裝置上。
只有當應用的 URL 看起來像是標準的 Web URL,中間沒有 hash(#)時,這個選項才能生效。
除非你有強烈的理由不得不使用 hash 路由,否則就應該堅決使用預設的 HTML 5 路由風格。
如何使用“hash URL”風格
RouterModule.forRoot(routes, { useHash: true })
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser' ;
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { PageNotFoundComponent } from './page-not-found/page-not-found.component';
const routes: Routes = [
];
@NgModule({
imports: [
BrowserModule,
FormsModule,
RouterModule.forRoot(routes, { useHash: true }) // .../#/crisis-center/
],
declarations: [
AppComponent,
PageNotFoundComponent
],
providers: [
],
bootstrap: [ AppComponent ]
})
export class AppModule { }