@ray-js/router
Version:
Ray Core
46 lines (44 loc) • 1.1 kB
JavaScript
import "core-js/modules/es.regexp.exec.js";
import "core-js/modules/es.string.replace.js";
import "core-js/modules/web.dom-collections.iterator.js";
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;