1. Introduction
- Dans une application monopage, comment ne pas actualiser le navigateur après avoir changé de page ? Afin de résoudre ce problème, il existe deux méthodes, à savoir
hash路由模式
,history路由模式
, etreact router
les deux itinéraires utilisent ces deux modes de routage.
Deux, la différence
-
HashRouter
-
Basé sur le
hash
mode : Le principe du saut de page est d'utiliser le modelocation.hash
,location.replace
et d'obtenir le même résultat.vue router
hash
-
Plus laid : Après le nom de domaine, épisser d'abord
/#
, puis épisser le chemin, c'est-à-dire utiliser le point d'ancrage pour réaliser le saut de l'itinéraire. Tel que : http://www.dzm.com/#/xx
-
-
BrowserRouter
-
Basé sur
history
le modèle : Le principe du saut de page est d'utiliser pour ajouter deux nouveaux objetsHTML5
pour l'objet global du navigateur , dont , et d'implémenter le même modèle.history
API
history.pushState
history.replaceState
vue router
history
-
Encore plus élégant : raccordez directement les chemins. Tel que : http://www.dzm.com/xx
-
Le backend doit effectuer le traitement des requêtes : après avoir changé d'itinéraire, le chemin de l'interface de requête changera et le backend doit coopérer avec le traitement.
-
Compatibilité : les navigateurs dotés de versions inférieures peuvent ne pas le prendre en charge. Actuellement, tous les navigateurs populaires du marché devraient le prendre en charge. Vous pouvez l'utiliser en toute confiance, sauf cas particulier.
-
3. Scénarios d'utilisation
-
HashRouter
- Déploiement du projet sur l'intranet : comme
to B
le projet, le projet utilisé par les métiers de l'entreprise, etc.
- Déploiement du projet sur l'intranet : comme
-
BrowserRouter
- Projets déployés sur le réseau public : pour
to C
les projets et les projets destinés au public,url
l'esthétique du chemin est bien sûr meilleure, mais le back-end doit être traité, mais actuellementto
il est pratiquement utilisé partout, sauf circonstances particulières.
- Projets déployés sur le réseau public : pour
4. Utiliser
-
Installation, ci-joint : utilisation détaillée du routage
# 默认安装最新版本,当前是 6.x $ npm install --save react-router-dom
-
index.tsx
import React from 'react' import { // HashRouter as Router, // hash模式 BrowserRouter as Router, // history模式 Route, Switch, } from 'react-router-dom' import Home from '../containers/home' const BasicRouter = () => ( <Router> <Switch> <Route exact path="/" component={ Home} /> </Switch> </Router> ) export default BasicRouter