前言

多了一個新的,「Comparison」

主要是覺得很多實踐,常常會透過不同方式的比較才知道什麼要使用它

而會有標題這個疑問,單純是因為和上一間公司用不一樣的方法

我覺得這也是 software engineer 到不同公司好處(?

差異

他們最大的差異就是對 server 來說實際的 path 是什麼

舉例有一個網站的網址是 hello.com

假設有一個 about 頁面

使用 HashRouter 會是這樣:hello.com/#/about
使用 BrowserRouter 會是這樣:hello.com/about

在做頁面的 request 時,server 不會解析 # 之後的內容

對他來講都是 hello.com 的 request

而 BrowserRouter 對 server 來說會拿到完整的 path

結論

兩者差異為何

  1. 因為要 BrowserRouter 會使 server 拿到不同的 path,可能會多「一點點」負擔
  2. 也因為有多解析 path,BrowserRouter 更有利於 SEO
  3. BrowserRouter 的 url 長得相對比較好看

以上是據我所知最大的三個差異點