1. 程式人生 > >angular6.x hash路由

angular6.x hash路由

文章參考

  1. 路由與導航

路由的兩種策略

  1. PathLocationStrategy - 預設的策略,支援“HTML 5 pushState”風格。
  2. 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 { }