美文网首页react-router
⻚⾯连接器之路由react-router

⻚⾯连接器之路由react-router

作者: 又菜又爱分享的小肖 | 来源:发表于2021-10-12 23:02 被阅读0次
安装
npm  i react-router-dom --save
  • 特点
    • react⼀切皆组件,路由也是组件
    • 分布式的配置, 分布在你页面的每个角落
    • 包含式配置, 可匹配多个路由
写法
  • 引入顶层路由组件包裹根组件
import React from 'react'
import { BrowserRouter} from 'react-router-dom'
export default function RouterSample() {
 return (
 <div>
 <h1>学习react路由</h1>
 <BrowserRouter>
 <App></App>
 </BrowserRouter>
 </div>
 )
}
  • 引入Link组件编写路由导航
<Link to="/">首页</Link>
// to指定跳转去的路径
  • 引入Route组件编写导航配置
<Route exact path="/" component={Home}><Route>
// path 配置路径
// component 配置路径所对应的组件
// exact 完全匹配, 只有路径完全一致时才匹配
  • 编写导航配置对象的component组件
路由传参&取参
  • 用的比较多的两种传参取参方式
    1. 声明式导航路由配置时配置路由参数
      • 配置
        <Route path="/detail/:course" component={Detail}></Route>
      
      • 传递
        <Link to="/detail/react">react</Link>
      
      • 获取
         // 解构路由器对象里的match出来(match获取参数信息)
         { match.params.course }
      
    2. 编程式导航式传递参数与获取
      • 解构路由器对象获取到导航对象history(用作命令行导航)
      • 通过事件执行history.push( { pathname: " / ", state: { foo: "bar" } } )传递的参数装载在state里面
      • 从路由信息解构出location(当前的url信息)对象location.state进行获取

嵌套路由及路由重定向

function ClassA() {
    return (
        <div>
            <ul>
                <li><Link to="/class/A">详情</Link></li>
                <li><Link to="/class/B">编辑</Link></li>
                <Route path="/class/A" component={() => <div><h1>详情</h1></div>}></Route>
                <Route path="/class/B" component={() => <div><h1>编辑</h1></div>}></Route>
                <Redirect to="/class/A"></Redirect>
            </ul>
        </div>
    )
}

相关文章

网友评论

    本文标题:⻚⾯连接器之路由react-router

    本文链接:https://www.haomeiwen.com/subject/blsjoltx.html