web-dev-qa-db-fra.com

Quelle est la différence en utilisant react-router et les routes express.js

Je fais un projet en utilisant react, redux et express, je ne comprends pas quelle est la différence entre react-router et express routes.js, avais-je besoin de combiner les deux ou simplement d'en utiliser un?

https://github.com/reactjs/react-router

Merci pour l'aide :)

29
fandro

Remarque: ce post stackoverflow contient des exemples et des codes qui pourraient vous aider beaucoup.

C'est un malentendu classique. Express gérera vos routes backend alors que React (avec react-router ou toute bibliothèque de routage front-end) gérera les routes frontend. Votre application React sera probablement un SPA (application d'une seule page), ce qui signifie que votre serveur (express ou autre) devra servir le index.html et react traitera votre candidature à partir d'ici. Ce qui signifie que React évaluera les itinéraires et décidera quelle vue rendre.

Par conséquent, vous devez vous assurer que lorsqu'un utilisateur emprunte un itinéraire comme /accounts/me, les serveurs servent votre application frontale (réagissent) si nécessaire, mais quelque chose comme /api/users/me rendrait les données. Ce n'est qu'un exemple.

Une utilisation "normale" serait de gérer vos données ( via une API) avec express et l'application (pages et vues) uniquement avec React.

Si vous utilisez le rendu serveur, cela devient un peu plus compliqué.

Dans la plupart des cas, oui, vous devrez utiliser les deux.

Modifier: il serait plus facile de répondre si votre question était plus précise sur votre utilisation et ce que vous voulez faire.

Edit 2: La plupart du temps, ce ne sont pas les mêmes serveurs desservant l'application frontale et l'API (données), si c'est le cas, assurez-vous simplement que l'application est envoyée lorsque certaines routes atteignent le serveur: c'est-à-dire /home, /about (qui ne sont évidemment -ici- pas des routes api) doivent être envoyées serve index.html comme application frontale, et React se chargera des itinéraires pour décider quoi rendre.

47
Cohars