BrowserRouter
Geçmiş API'sini kullanır , yani eski tarayıcılar (IE 9 ve altı ve çağdaşlar) için kullanılamaz. İstemci tarafı React uygulaması example.com/react/route gibi temiz rotaları koruyabilir ancak web sunucusu tarafından desteklenmelidir. Genellikle bu, web sunucusunun tek sayfalı uygulama için yapılandırılması gerektiği anlamına gelir, yani aynı / tepki / yol yolu veya sunucu tarafındaki başka herhangi bir yolindex.html
için sunulur . İstemci tarafında, React yönlendiricisi tarafından ayrıştırılır. React yönlendiricisi, / react / route için işlemek üzere yapılandırıldığı bir bileşeni oluşturur .window.location.pathname
Ek olarak, kurulum sunucu tarafında işlemeyi index.html
içerebilir, işlenmiş bileşenleri veya mevcut yola özgü verileri içerebilir.
HashRouter
URL karma kullanır, desteklenen tarayıcılara veya web sunucusuna herhangi bir sınırlama getirmez. Sunucu tarafı yönlendirme, istemci tarafı yönlendirmeden bağımsızdır.
Geriye dönük uyumlu tek sayfalı uygulama, bunu example.com/#/react/route olarak kullanabilir . Sunucu tarafında sunulan / yol olduğundan, kurulum sunucu tarafında işleme tarafından yedeklenemez , # / react / route URL karması sunucu tarafından okunamaz. İstemci tarafında, window.location.hash
React yönlendiricisi tarafından ayrıştırılır. React yönlendiricisi , benzer şekilde / tepki / yönlendirme için oluşturmak üzere yapılandırıldığı bir bileşeni oluşturur BrowserRouter
.
En önemlisi, HashRouter
kullanım durumları SPA ile sınırlı değildir. Bir web sitesinde eski veya arama motoru dostu sunucu tarafı yönlendirmesi olabilirken, React uygulaması example.com/server/side/route#/react/route gibi URL'deki durumunu koruyan bir widget olabilir . React uygulamasını içeren bir sayfa sunucu tarafında / server / side / route için sunulur , ardından istemci tarafında React yönlendiricisi önceki senaryoya benzer şekilde / react / route için yapılandırıldığı bir bileşen oluşturur .