UNPKG

ptool

Version:

vue项目开发通用工具类封装

48 lines (47 loc) 1.46 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** * @FileName createRoutes.ts * @Author Mad Dragon <395548460@qq.com> * @Version V 0.0.1 * @Date 2021/4/13 17:44 * @Title * @Desc **/ const vue_1 = __importDefault(require("vue")); const vue_router_1 = __importDefault(require("vue-router")); vue_1.default.use(vue_router_1.default); const VueRouterPush = vue_router_1.default.prototype.push; vue_router_1.default.prototype.push = function push(to) { const a = VueRouterPush.call(this, to); a.catch((err) => err); return a; }; const createRouter = (baseRoutes = [], routes = [], base = '', homeName = 'home', mode = 'history', title = '', beforeEach = () => { }, afterEach = () => { }) => { const router = new vue_router_1.default({ mode: mode, base: base, routes: [ ...routes, ...baseRoutes ] }); // 全局守卫 router.beforeEach((to, from, next) => { beforeEach(to, next, homeName); }); // 全局后置钩子 router.afterEach((to) => { if (to.meta.title) { document.title = title ? to.meta.title + '-' + title : to.meta.title; } // window.scrollTo(0, 0); afterEach(to); }); return router; }; exports.default = createRouter;