BrowserRouter
ใช้API ประวัติกล่าวคือไม่สามารถใช้ได้กับเบราว์เซอร์รุ่นเก่า (IE 9 และต่ำกว่าและรุ่นเดียวกัน) แอปพลิเคชัน React ฝั่งไคลเอ็นต์สามารถรักษาเส้นทางที่สะอาดเช่นexample.com/react/routeแต่ต้องได้รับการสนับสนุนจากเว็บเซิร์ฟเวอร์ โดยปกติหมายความว่าควรกำหนดค่าเว็บเซิร์ฟเวอร์สำหรับแอ็พพลิเคชันแบบหน้าเดียวกล่าวindex.html
คือให้บริการสำหรับ/ react / route path หรือเส้นทางอื่น ๆ บนฝั่งเซิร์ฟเวอร์ ในฝั่งไคลเอ็นต์window.location.pathname
จะแยกวิเคราะห์โดย React router ตอบสนองเราเตอร์ทำให้องค์ประกอบที่มีการกำหนดค่าการแสดงผลสำหรับ/ ตอบสนอง / เส้นทาง
นอกจากนี้การตั้งค่าอาจเกี่ยวข้องกับการแสดงผลฝั่งเซิร์ฟเวอร์index.html
อาจมีส่วนประกอบที่แสดงผลหรือข้อมูลที่เฉพาะเจาะจงสำหรับเส้นทางปัจจุบัน
HashRouter
ใช้แฮช URL ทำให้ไม่มีข้อ จำกัด สำหรับเบราว์เซอร์หรือเว็บเซิร์ฟเวอร์ที่รองรับ การกำหนดเส้นทางฝั่งเซิร์ฟเวอร์ไม่ขึ้นอยู่กับการกำหนดเส้นทางฝั่งไคลเอ็นต์
โปรแกรมเดียวหน้าย้อนกลับกันได้สามารถใช้มันเป็นexample.com/#/react/route ไม่สามารถสำรองการตั้งค่าโดยการแสดงผลฝั่งเซิร์ฟเวอร์ได้เนื่องจากเป็น/เส้นทางที่ให้บริการบนฝั่งเซิร์ฟเวอร์แฮช URL # / react / routeจากฝั่งเซิร์ฟเวอร์ไม่สามารถอ่านได้ ในฝั่งไคลเอ็นต์window.location.hash
จะแยกวิเคราะห์โดย React router ตอบสนองเราเตอร์ทำให้องค์ประกอบที่มีการกำหนดค่าการแสดงผลสำหรับ/ ตอบสนอง / เส้นทางคล้าย ๆ BrowserRouter
กับ
ที่สำคัญที่สุดคือHashRouter
กรณีการใช้งานไม่ได้ จำกัด เฉพาะสปา เว็บไซต์อาจมีมรดกหรือเครื่องมือค้นหาง่ายฝั่งเซิร์ฟเวอร์เส้นทางในขณะที่ตอบสนองการประยุกต์ใช้อาจจะเป็นเครื่องมือที่จะรักษาสถานะของมันใน URL เหมือนexample.com/server/side/route#/react/route บางเพจที่มีแอ็พพลิเคชัน React จะถูกแสดงบนฝั่งเซิร์ฟเวอร์สำหรับ/ server / side / routeจากนั้นบนฝั่งไคลเอ็นต์ React router จะแสดงส่วนประกอบที่ได้รับการกำหนดค่าให้แสดงผลสำหรับ/ react / routeซึ่งคล้ายกับสถานการณ์ก่อนหน้า