react-router vs react-router-dom, kapan harus menggunakan satu atau yang lain?

123

Keduanya memiliki Route, Link, dll. Kapan menggunakan salah satu atau lainnya? Saya benar-benar bingung di mana harus menggunakan masing-masing. Sisi server? Sisi klien?

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

Dalam beberapa contoh Anda harus meneruskan sejarah, pada contoh lainnya tidak. Apa yang harus dilakukan?

<Router history={browserHistory}>

vs.

<Router>

Benar-benar membingungkan kapan harus menggunakan satu atau yang lain, bantuan apa pun dihargai.

chulian
sumber

Jawaban:

151

react-router berisi semua komponen umum antara react-router-dom dan react-router-native . Kapan sebaiknya Anda menggunakan salah satunya? Jika Anda berada di web, maka react-router-dom harus memiliki semua yang Anda butuhkan karena juga mengekspor komponen umum yang Anda perlukan. Jika Anda menggunakan React Native, react-router-native harus memiliki semua yang Anda butuhkan untuk alasan yang sama. Jadi Anda mungkin tidak perlu mengimpor apapun langsung dari react-router . Sejauh saat Anda menggunakan

<Router history={browserHistory}>

vs.

<Router>

Di RRv4 Anda tidak perlu memberikan browserHistory, itu hanya untuk versi router sebelumnya.

Jika masih bingung bisa cek detail masing-masing paketnya di sini

Tyler McGinnis
sumber
2
haruskah kita menghapus react-router dari proyek atau itu mempengaruhi react-router-dom ?? apakah paket react-router wajib bekerja dengan react-router-dom?
YÒGÎ
3
@snAtchnAren Ini tidak wajib. Anda tidak perlu paket "react-router" jika Anda telah menginstal "react-router-dom".
Tyler McGinnis
2
Jika saya menggunakan react-router-dom melalui react-router, apakah itu akan mengurangi ukuran bundel saya?
Vrishank
26

react-router-dom adalah nilai react-routertambah:

Atombit
sumber
6

Di v4, react-router mengekspor komponen dan fungsi inti. react-router-dom mengekspor komponen yang sadar DOM, seperti <Link>(yang merender <a>) dan (yang berinteraksi dengan window.history browser).

react-router-domre-ekspor semua ekspor react-router, jadi Anda hanya perlu mengimpor dari react-router-domdalam proyek Anda.

Sooraj
sumber
tetapi apakah Anda perlu menginstal npm react-router dan react-router-dom secara terpisah?
joedotnot