UNPKG

nativescript-vue-router-extended

Version:

NativeScript Vue Router Extended for NativeScript Vue hybrid Apps.

43 lines 1.53 kB
import Vue from "nativescript-vue"; import { Frame } from "@nativescript/core/ui/frame"; import { RouterService } from "./router-service"; import { registerActionDispatcher } from "./router-dispatcher-service"; import routerMixin from "./router-mixin"; const routers = []; export const createRouter = (vueRouterOptions, routerOptions = {}) => { const vm = routerOptions.vm || Vue; const proto = Vue.prototype; const router = new RouterService(vueRouterOptions, Object.assign({ frame: Frame, vm: proto }, routerOptions)); routers.push(router); if (vm.createApp && vm.config.globalProperties) { vm.config.globalProperties.$routeTo = router.push.bind(router); vm.config.globalProperties.$routeBack = router.back.bind(router); vm.config.globalProperties.$router = router; vm.provide('$router', router); } else { proto.$routeTo = router.push.bind(router); proto.$routeBack = router.back.bind(router); proto.$router = router; const route = Vue.observable({ name: '', path: '', }); proto.$route = route; } if (vm.mixin) { vm.mixin(routerMixin); } registerActionDispatcher(router, proto); return router; }; export const useRouter = (routerIndex = 0) => { return routers[routerIndex]; }; export const useRoute = (routerIndex = 0) => { return routers[routerIndex].getCurrentRoute(); }; export default { createRouter, }; //# sourceMappingURL=vue-router.common.js.map