什么是RouteHandler
A <RouteHandler> component renders the active child route handler.
RouteHandler是渲染当前子路由处理器的组件,它将根据URL渲染子组件中的一个.类似于iframe.
Router.run
// 将匹配的路由渲染到 DOM 中
Router.run(routes, Router.HistoryLocation, function(Handler) {
React.render(<Handler />,
document.getElementById('app'));
});
Router 即 ReactRouter,run 方法接受 2 - 3个参数,其中第一个参数必填,即我们指定的路由规则。第二个参数选填,即路由的实现方式, Router.HashLocation
指明了当前页面使用 hash 变化来实现路由,反映在浏览器的地址栏中就是类似 xxx.com/#/movies这样的地址。
使用这种 Location 的好处是兼容 IE 8,如果你的应用不需要兼容 IE 8,可以使用更高级的 Router.HistoryLocation。
最后一个参数是一个回调函数,函数的第一个参数是 ReactRouter 判断出的当前路由中需要渲染的根节点组件,在这里就是 <app />这个组件(虽然名字叫做 Handler,但在本例中 Handler 指的就是 app)。