您的位置:首页 > Web前端 > React

react-router基本知识

2017-07-19 21:04 375 查看

相关链接

react-router

示例网站

作用

让浏览器历史记录功能可用,包括前进后退功能

管理组件的加载

这点用在菜单功能特别好使

原理

使用h5的history接口,来保持ui和url同步

安装

cnpm install react-router-dom


导入

import {
BrowserRouter as Router,
Route,
Link
} from 'react-router-dom'


api

BrowserRouter

路由定义外层配置,配置基本规则

属性

(1) basename

基目录,以/开头,结尾无/

(2) getUserConfirmation

–(略)

(3) forceRefresh

为 true 时,在导航的过程中整个页面将会刷新。(浏览器不支持 HTML5 的 history API 时使用)

(4) keyLength

hashRouter

HashRouter 使用 URL 的 hash (例如:window.location.hash) 来保持 UI 和 URL 的同步。

Link

用来定义导航

<Link></Link>


属性

(1) to

指定点击后跳转到(显示)的路径(string)或是地址(object)

//路径
<Link to="/courses"/>


//地址
<Link to={{
pathname: '/courses',
search: '?sort=name',
hash: '#the-hash',
state: { fromDashboard: true }
}}/>


(2) replace

是否替换源地址(不算一个历史记录),默认false

<Link to="/courses" replace />


NavLink

会在匹配上当前 URL 的时候会给已经渲染的元素添加样式参数

MemoryRouter

在内存保存你 “URL” 的历史纪录(并没有对地址栏读写). 在非浏览器或者测试环境比如React Native下很有用

Redirect

渲染的时候将会导航到一个新的地址(location)。这个新的地址(location)将会覆盖在访问历史记录里面的原地址

Route

当location(url)匹配path属性时,渲染指定的组件。

使用有三种渲染内容的方法:

1 component

地址匹配的时候React的组件会被渲染

<Route path="/user/:username" component={User}/>

const User = ({ match }) => {
return <h1>Hello {match.params.username}!</h1>
}


2 render

内联渲染或包装组件

//行内渲染
<Route path="/home" render={() => <div>Home</div>}/>


3 children

不管地址是否匹配都渲染

属性

(1) path

路径,无则总是匹配

(2) exact

当值为true时,则要求路径与location.pathname必须 完全 匹配。

<Route exact path="/one" component={About}/>


(3) strict

严格检查 / 结尾

<Route strict path="/one/" component={About}/>


Router

Router是所有路由组件共用的底层接口,一般我们的应用并不会使用这个接口

StaticRouter

从不会改变地址

Switch

渲染匹配地址(location)的第一个 或者
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  react