上一章我们了解了一个RR4很重要的组件,今天还会介绍另外一个很重要的组件
Router
Router是RR4中最重要的组件,必须理解,学会使用,他最基本的职责是当页面的访问地址与Route的path匹配时,就渲染出相对应的UI界面。
三个render method
每种render mothod都有不同的应用场景,同一个
component
只有当访问地址和路由匹配时,一个React component才会被渲染,此时组件接受router props(match,location,history)
当使用component时,router将使用React.createElement,根据给定的component创建一个全新的React,这意味着如果你使用内联(linefunction)传值给component将会产生不必要的重复装载,对于内联渲染(inline rendering)建议使用render prop。
render:func
此方法适用于内联渲染,而且不会产生上文说的重复装载。
children:func
有时候你可能只想知道访问地址是否被匹配,然后改变下别的东西,而不仅仅是对应的页面
path:string
任何可以被path-to-regexp解析的有效URL路径。<Route path='/users/:id' component={User} />
如果不给path那么路由将总是匹配
- exact:bool
如果为true,path为’/one’的路由将不能匹配’/one/two’,反之亦然。 - strict:bool
表示对路径末尾斜杠的匹配,如果为true,path为’/one/‘将不能匹配’/one’,但可以匹配’/one/two’
如果要确保路由没有末尾斜杠,那么strict和ecact都必须同时为true。