react-router so với react-router-dom, khi nào sử dụng cái này hay cái kia?


123

Cả hai đều có Tuyến đường, Liên kết, v.v. Khi nào sử dụng cái này hay cái kia? Tôi thực sự bối rối về nơi sử dụng từng cái. Phía máy chủ? Phía khách hàng?

https://reacttraining.com/react-router/

Trong một số ví dụ, bạn cần phải vượt qua lịch sử, trong khi những ví dụ khác thì không. Để làm gì?

<Router history={browserHistory}>

vs

<Router>

Thực sự khó hiểu khi sử dụng cái này hay cái kia, bất kỳ trợ giúp nào cũng được đánh giá cao.


Câu trả lời:


151

react-router chứa tất cả các thành phần chung giữa react-router-domreact-router-native . Khi nào bạn nên sử dụng cái này thay cho cái kia? Nếu bạn đang truy cập web thì react-router-dom sẽ có mọi thứ bạn cần vì nó cũng xuất các thành phần phổ biến mà bạn cần. Nếu bạn đang sử dụng React Native, react-router-native sẽ có mọi thứ bạn cần vì lý do tương tự. Vì vậy, bạn có thể sẽ không bao giờ phải nhập trực tiếp bất cứ thứ gì từ bộ định tuyến phản ứng . Theo như khi bạn sử dụng

<Router history={browserHistory}>

vs

<Router>

Trong RRv4, bạn sẽ không cần chuyển xuống browserHistory, chỉ dành cho các phiên bản trước của bộ định tuyến.

Nếu vẫn còn phân vân, bạn có thể xem chi tiết từng gói tại đây


2
chúng ta sẽ xóa react-router khỏi dự án hay nó ảnh hưởng đến react-router-dom ?? gói react-router đó có bắt buộc phải hoạt động với react-router-dom không?
YÒGÎ

3
@snAtchnAren Nó không bắt buộc. Bạn không bao giờ cần gói "react-router" nếu bạn đã cài đặt "react-router-dom".
Tyler McGinnis

2
Nếu tôi sử dụng react-router-dom qua react-router, nó có làm giảm kích thước gói của tôi không?
Vrishank

26

react-router-dom là một điểm react-routercộng:



6

Trong v4, react-router xuất các thành phần và chức năng cốt lõi. react-router-dom xuất các thành phần nhận biết DOM, như <Link>(hiển thị<a> ) và (tương tác với window.history của trình duyệt).

react-router-domtái xuất tất cả các bản xuất của bộ định tuyến phản ứng, vì vậy bạn chỉ cần nhập từ react-router-domtrong dự án của mình.


nhưng bạn có cần npm cài đặt riêng biệt cả react-router và react-router-dom không?
joedotnot
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.