2016-03-04 36 views
1

的反應路由器文件(history)表示路由器使用瀏覽器歷史記錄:爲什麼反應,而不是哈希歷史

你可能會問,爲什麼我們不回落到歷史散列;問題是URL變得不確定。如果哈希歷史記錄上的訪問者與瀏覽器歷史記錄的訪問者共享一個URL,然後他們將它們分享回來,那麼我們最終將得到一個可怕的笛卡爾積,其中包含無限可能的URL。

我有點困惑。一個應用程序只有一種方式來實現其歷史機制。訪問者將URL分享給另一個人,他們都會使用瀏覽器歷史記錄或哈希歷史記錄。它總是一樣的。

我誤解了一些東西?如果沒有,爲什麼反應路由器使用瀏覽器歷史而不是哈希歷史?哈希歷史曾經是默認的歷史記錄機制。爲什麼改變它?

回答

1

你可能會問,爲什麼我們不回落到歷史散列

一般來說它可能是回落不支持browserHistory當這麼老的瀏覽器不充分重載一個好主意。

但是,這會導致您給出的引用中描述的麻煩,因此如果瀏覽器不支持browserHistory,他們決定不回退到hashHistory。

如果他們回退,那麼具有舊瀏覽器的用戶與擁有現代瀏覽器的用戶擁有不同的網址。

+0

謝謝你的答案,但我仍然沒有得到它。我認爲一個應用程序只有一種方式來實現其歷史機制。所以如果他們回退,具有舊瀏覽器的用戶和具有現代瀏覽器的用戶都將具有哈希歷史記錄。應用中的網址永遠都是一樣的。 – Bryce

+1

@Bryce,後退將(而且應該)在運行時發生。所以該應用程序看到瀏覽器不支持browserHistory,它會回退到此特定用戶的hashHistory。其他用戶可能會根據他們的瀏覽器獲得其他結果。那是他們想要避免的 – pseidemann

+0

謝謝!這對我有很大的幫助。 – Bryce