nativescript-vue-router-extended
Version:
NativeScript Vue Router Extended for NativeScript Vue hybrid Apps.
43 lines • 1.53 kB
JavaScript
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