@ray-js/router
Version:
Ray Core
43 lines (41 loc) • 947 B
JavaScript
import { createHistory } from './history';
import { Router } from './Router';
import { RouterScheduler } from './RouterScheduler';
const scheduler = window.__ray__routerScheduler__ = new RouterScheduler();
const router = window.__ray__router__ = new Router({
scheduler
});
export function createRouter(options) {
const {
basename,
onChange,
routes,
tabBar,
pages
} = options;
const history = createHistory({
basename,
scheduler,
onChange: function () {
router.$href = window.location.href;
onChange(...arguments);
}
});
// 设置路由基准路径
router.scheduler.basename = basename || '/';
// 调度器注册页面
router.scheduler.registryPages({
routes,
tabBar,
pages
});
const {
pathname,
search,
hash
} = history.location;
// 首次触发 history change
history.replace(pathname + search + hash);
return router;
}
export default router;