初学react之路由

113 阅读1分钟

一、最近学习了react的路由,那么我就记个笔记吧!大家也可以looK一下

平常我们用到的路由一般有browserHistory和hashHistory,这两个路由模式的区别一会儿再说,我们现在就单纯说用法。
import React from "react"; 
// 引入路由
import { HashRouter, Route, Link,switch } from "react-router-dom";
// 引入组件
import Home from './components/Home' 
import Movie from './components/Movie' 
import About from './components/About' 
class App extends React.Component {
render() { 
  return (  
  <HashRouter>   
  <div> 
  <h1>组件路由</h1> 
   {/* 路由链接组件 */} 
   <Link to="/home">首页</Link>   
   <Link to="/movie">电影</Link>  
    <Link to="/about">关于</Link>
    <hr></hr>
    <switch>
     {/* 新增一个重定向的路由规则 */} 
   <Route path="/home" component={Home} ></Route>
    <Route path="/movie" component={Movie} ></Route> 
   <Route path="/about" component={About} ></Route>
   </div> 
   </switch>
  </HashRouter> ); 
 } 
}export default App;

首先我们需要在最外层包裹browserHistory或者hashHistory,然后使用Link标签,这个相当于a标签这样子,接着我们得定义一下路由匹配规则。我们先包裹一个switch便签,为何要用这个标签呢!这个标签的用处就是用于匹配路由并且做一些限制,让路由能够准确地匹配到你想要的,以免出现一些意外,接着来个Route标签,定义path,然后匹配路由组件component,这样子就能实现路由的匹配了。

关于browserHistory和hashHistory的区别呢!hashHistory的path会有一个#号,它的兼容性较browserHistory要好,因为hashHistory是通过hash值去匹配路由的,#后面跟着的path它是不管的,但是browserHistory是根据你的path来匹配的,它需要服务端的支持,当你服务端没有做路由配置的时候,用户刷新页面会导致一些引用的东西丢失,但是hashHistory就不会了。