加入收藏 | 设为首页 | 会员中心 | 我要投稿 吕梁站长网 (https://www.0358zz.com/)- 行业物联网、运营、专有云、管理运维、大数据!
当前位置: 首页 > 教程 > 正文

如何安装react路由

发布时间:2023-07-05 12:00:13 所属栏目:教程 来源:网络
导读:   这篇文章主要介绍了react路由如何安装的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react路由如何安装文章都会有所收获,下面我们一起来看看吧。
  这篇文章主要介绍了react路由如何安装的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react路由如何安装文章都会有所收获,下面我们一起来看看吧。
 
  react路由的安装方法:1、通过“npm i react-router-dom@5.0 -S”安装路由;2、使用“import { HashRouter as Router, Route, NavLink } from 'react-router-dom'”方式导入路由即可。
 
  react 路由安装及简单使用
 
  一.react安装路由
 
  安装:npm i react-router-dom@5.0 -S (最新版本为6.0)
 
  导入:
 
  import { HashRouter as Router, Route, NavLink } from 'react-router-dom'
 
  路由配置:
 
  1.所有路由相关内容都应该放在<Router>组件内
 
  2.链接使用:<NavLink to="地址">
 
  3.页面使用:<Route path="地址" component={组件}>
 
  示例:简单的路由跳转
 
  function App() {
 
      return (<Router>
 
          <div>
 
                //exact 精确匹配
 
              <NavLink to='/' exact>首页</NavLink>|
 
              <NavLink to='/about' >关于</NavLink>
 
          </div>
 
          {/* 路由页面 */}
 
          <Switch>
 
              <Route path="/" exact component={Home}></Route>
 
              <Route path="/about" component={About}></Route>
 
          </Switch>
 
      </Router>)
 
  }
 
  export default App
 
  
 
  function Home() {
 
      return <div>首页页面</div>
 
  }
 
  
 
  function About() {
 
      return <div>
 
           关于页面    
 
      </div>
 
  }
 
  二.路由传参
 
  路由传参形式
 
  1.链接传参   <NavLink to="/produce/abc">
 
  2.参数传参  <Route path="/produce/:id">
 
  3.参数获取  props.match.params.id
 
  常用历史操作的方法
 
  1.go()历史跳转记录
 
  2.goBack(返回)
 
  3.push()添加记录跳转
 
  4.replace()替换记录并跳转
 
  示例:
 
  import { HashRouter as Router, Route, NavLink, Redirect, Switch, Prompt, Link } from 'react-router-dom'
 
  // NavLink 会比 link自动添加一个active的class
 
  function App() {
 
      return (<Router>
 
          <div>
 
              <NavLink to='/' exact>首页</NavLink>|
 
              <NavLink to='/about' >关于</NavLink>
 
              <NavLink to='/produce/abc'>产品abc</NavLink>
 
              <NavLink to='/produce/123'>产品123</NavLink>
 
          </div>
 
          {/* 路由页面 */}
 
          <Switch>
 
              <Route path="/" exact component={Home}></Route>
 
              <Route path="/about" component={About}></Route>
 
              <Route path="/produce/:id" component={Produce}></Route>
 
          </Switch>
 
      </Router>)
 
  }
 
  export default App
 
  
 
  function Produce({ match, history, location }) {
 
      // console.log(match);
 
      return (<div>
 
          <h2>产品{match.params.id}</h2>
 
          <button onClick={() => history.goBack()}>返回</button>
 
          <button onClick={() => history.push('/')}>回到首页</button>
 
      </div>)
 
  }
 
  
 
  function Home() {
 
      return <div>首页页面</div>
 
  }
 
  
 
  function About() {
 
      return <div>关于页面
 
      </div>
 
  }
 
  子路由传参
 
  示例:
 
  // 导入路由相关组件
 
  // 导入哈希路由 别名router
 
  // Route路由页面
 
  // NvaLink 导航链接
 
  import { HashRouter as Router, Route, NavLink, Redirect, Switch, Prompt, Link } from 'react-router-dom'
 
  // NavLink 会比 link自动添加一个active的class
 
  function App() {
 
      return (<Router>
 
          <div>
 
              <NavLink to='/' exact>首页</NavLink>|
 
              <NavLink to='/about' >关于</NavLink>
 
              <NavLink to='/produce/abc'>产品abc</NavLink>
 
              <NavLink to='/produce/123'>产品123</NavLink>
 
              <NavLink to='/admin'>管理</NavLink>
 
          </div>
 
          {/* 路由页面 */}
 
          <Switch>
 
              <Route path="/" exact component={Home}></Route>
 
              <Route path="/about" component={About}></Route>
 
              <Route path="/produce/:id" component={Produce}></Route>
 
              <Route path="/admin" component={Admin}></Route>
 
          </Switch>
 
      </Router>)
 
  }
 
  export default App
 
  function NoMatch({ location, history }) {
 
      return (<div>
 
          <h2>404</h2>
 
          <p>你爹来咯</p>
 
          <p>{location.url}</p>
 
          <button onClick={history.goBack}>后退</button>
 
          <NavLink to={{ pathname: "/" }}>首页</NavLink>
 

      </div>)
 
  }
 
  function Admin() {
 
      return (<div style={{ "display": "flex" }}>
 
          <div style={{ width: "200px", boderRight: "1px solid #f0f0f0" }}>
 
              <NavLink to="/admin/dash">概览</NavLink><br />
 
              <NavLink to="/admin/orderlist">列表</NavLink>
 
          </div>
 
          <div>
 
              <Route path="/admin/dash" component={Dash}></Route>
 
              <Route path="/admin/orderlist" component={OrderList}></Route>
 
              <Redirect path='/admin' to="/admin/dash"></Redirect>
 
          </div>
 
      </div>)
 
  }
 
  function Dash() {
 
      return (<div>
 
          概览
 
      </div>)
 
  }
 
  function OrderList() {
 
      return (<div>
 
          订单列表
 
      </div>)
 
  }
 
  function Produce({ match, history, location }) {
 
      // console.log(match);
 
      return (<div>
 
          <h2>产品{match.params.id}</h2>
 
          <button onClick={() => history.goBack()}>返回</button>
 
          <button onClick={() => history.push('/')}>回到首页</button>
 
      </div>)
 
  }

  function Home() {
 
      return <div>首页页面</div>
 
  }  
 
  function About() {
 
      return <div>关于页面
 
      </div>
 
  }
 

(编辑:吕梁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章