Router
history { Object } #
指定 Router 的历史,原生提供两种历史:browserHistory
和 hashHistory
。
这两种历史是纯单页历史,作为原有代码加以保留。另外提供两种兼容历史:
- createBrowserHistory
- createHashHistory
这两种历史兼容 web/hy/spa 三种环境,在业务开发中推荐使用。
import { createbrowserHistory } from '@qnpm/yo-router' const browserHistory = createbrowserHistory() ReactDOM.render(<Router history={browserHistory} />, el)
children { Route } #
子组件,<Router>
的子组件必须是一个或多个 <Route>
组件,或是 PlainRoute。
当历史修改时,<Router>
组件将会在路由中匹配一个分支,并一次渲染路由上配置的组件。
子路由的组件会被嵌套渲染到父路由的 children
中。
createElement { Function } #
当路由准备渲染一个分支的路由组件时,将会使用本方法来创建元素。
方法的默认值即 React.createElement
,如果想要自行控制组件创建,
例如想在组件创建时给 store 挂在监听事件,或给业务组件传递特殊的 props 时,
可以自定义该方法。
<Router createElement={createElement} /> // 默认方法就是酱婶儿的 function createElement(Component, props) { // 确保传递进所有的 props return <Component {...props} /> } // 然后我们可以自行定义 createElement 方法 function createElement(Component, props) { // 当然,还是要确保传递进所有的 props 啊 return <RelayContainer Component={Component} routerProps={props} /> }
默认值: React.createElement
onError { Function } #
在匹配路由的过程中,可能会抛出一些异常,可以通过这个回调来捕获 并处理。通常只有在使用异步特性时,才会用到该方法。
onUpdate { Function } #
当 url 更新之后,setState
的成功回调。
extraRootClass { String } #
根组件附加类名,对 <yorouter-root>
元素添加自定义类名。注意,在 useViewStack
设置为 false
时将不会生效。
extraRootStyle { String } #
根组件附加样式,对 <yorouter-root>
元素进行样式操作。注意,在 useViewStack
设置为 false
时将不会生效。
useViewStack { Boolean } #
是否使用 <ViewStack>
来配置页面,详见 ViewStack。
默认值: true
render { Function } #
配置默认渲染方式,默认会根据 useViewStack 的配置情况自动选择渲染 <ViewStack>
还是 <RouterContext>
。
useZIndex { Boolean } #
是否给每个页面设置 z-index,方便在不同页面层级之间展示一些含有 z-index 的组件。默认为 false,即每个页面都带有 z-index;如果不设置,由于新页面在文档流中的顺序靠下,因此也会盖在老页面的上方。
默认值: false
zIndex { Number } #
页面的基准 zIndex,默认为 1
默认值: 1
zIndexGap { Number } #
每个页面之前 zIndex 间距,默认为 1
默认值: 1