react 中的路由 Link 和Route

Posted dianzan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react 中的路由 Link 和Route相关的知识,希望对你有一定的参考价值。

route是配置,link是使用

https://blog.csdn.net/chern1992/article/details/77186118(copy)

嵌套路由一般使用Route,类似于vue中的作为嵌套路由的渲染,可以直接通过固定路由进入某一局部,等同于局部切换

// index.js
// ...
render((
  <Router history=hashHistory>
    <Route path="/" component=App>
      /* 注意这里把两个子组件放在Route里嵌套在了App的Route里/
      <Route path="/repos" component=Repos/>
      <Route path="/about" component=About/>
    </Route>
  </Router>
), document.getElementById(‘app‘))

Link进行的是路由切换跳转,整个单页面已经切换,而且能知道指向的路径是否是一个有效的路由

// modules/NavLink.js
import React from ‘react‘
import  Link  from ‘react-router‘

export default React.createClass(
  render() 
    return <Link ...this.props activeClassName="active"/>
  
)
// modules/App.js
import NavLink from ‘./NavLink‘

// ...

<li><NavLink to="/about">About</NavLink></li>
<li><NavLink to="/repos">Repos</NavLink></li>

 

NavLink
<NavLink>是<Link>的一个特定版本,会在匹配上当前的url的时候给已经渲染的元素添加参数,组件的属性有

activeClassName(string):设置选中样式,默认值为active
activeStyle(object):当元素被选中时,为此元素添加样式
exact(bool):为true时,只有当导致和完全匹配class和style才会应用
strict(bool):为true时,在确定为位置是否与当前URL匹配时,将考虑位置pathname后的斜线
isActive(func)判断链接是否激活的额外逻辑的功能

// activeClassName选中时样式为selected
<NavLink
  to="/faq"
  activeClassName="selected"
>FAQs</NavLink>
 
// 选中时样式为activeStyle的样式设置
<NavLink
  to="/faq"
  activeStyle=
    fontWeight: ‘bold‘,
    color: ‘red‘
   
>FAQs</NavLink>
 
// 当event id为奇数的时候,激活链接
const oddEvent = (match, location) => 
  if (!match) 
    return false
  
  const eventID = parseInt(match.params.eventID)
  return !isNaN(eventID) && eventID % 2 === 1

 
<NavLink
  to="/events/123"
  isActive=oddEvent
>Event 123</NavLink>

 

以上是关于react 中的路由 Link 和Route的主要内容,如果未能解决你的问题,请参考以下文章

如何在react js中的onclick事件上隐藏和显示路由器组件

react路由

react --- 路由

react的路由以及传值方法

React路由

React路由