React-router学习之(Link NavLink Rediret)

##Link

生成一个无刷新的a元素

 -to

 -字符串:跳转目标地址

 -对象:{

  - pathname:url路径

  - search:参数

  - hash:hash值

  - state:附件状态信息  

}

 -replace:bool,表示是否替换当前地址,默认时false

 - innerRef:可以将内部的a元素附着在传递对象或者函数上

  --函数

  - 对象

<Link to={{
        pathname: "/a",
        state: "获得状态A"
      }} style={{ marginRight: 20 }}>跳转A</Link>
      <Link to={{
        pathname: "/B",
        state: "获得状态B"
      }}>跳转B</Link>

##NavLink:是一种特殊的Link,Link有的它都有

它具备的额外功能:根据当前地址和链接来决定该链接的样式

activeClassName:string

//当被激活时,显示类名为selected 的css样式

<NavLink  to="/about"  activeClassName="selected">
  About
</NavLink>

activeStyle:object

// 在元素处于活动状态时应用于该元素的样式。

<NavLink   
        to="/about"
        activeStyle={{ fontWeight: "bold",  color: "red" }}
>
  about
</NavLink>

exact: 精确匹配

//仅当url与NavLink里to的值完全相等时,才应用类名为selected的CSS样式

<NavLink exact  to="/about"  activeClassName="selected">
  About
</NavLink>

isActive: :function

//用于添加额外逻辑以确定链接是否处于活动状态的功能。
//如果您要做的不仅仅是验证链接的路径名是否与当前URL匹配,那么应该使用此方法

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>
<NavLink to={{
        pathname: "/a",
        state: "获得状态A"
      }} style={{ marginRight: 20 }}>跳转A</NavLink>
      <NavLink to={{
        pathname: "/B",
        state: "获得状态B"
      }}>跳转B</NavLink>

css

.active{
  text-decoration: none;
  color:red;
}
原文地址:https://www.cnblogs.com/qydknowledge/p/14202758.html