Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9
A simple router for NativeScript-Vue, built on top of $navigateTo to simplify routing from within components
License
nativescript-vue/nativescript-vue-navigator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
NativeScript-Vue-Navigator is a simple router implementation that is suitable for NativeScript-Vue.
$ npm install --save nativescript-vue-navigator
// main.jsimport Vue from 'nativescript-vue'...+ import Navigator from 'nativescript-vue-navigator'+ import {routes} from './routes'+ Vue.use(Navigator, { routes })new Vue({- render: h => h('frame', App),+ render: h => h(App),}).$start()
// routes.jsimportHomePagefrom'./components/HomePage'importLoginPagefrom'./components/LoginPage'exportconstroutes={'/home':{component:HomePage,},'/login':{component:LoginPage,},}
// App.vue<template>+ <Navigator :defaultRoute="isLoggedIn ? '/home' : '/login'"/></template>
// routes.jsimport HomePage from './components/HomePage'import LoginPage from './components/LoginPage'export const routes = { '/home': { component: HomePage,+ // we are using `meta` as a good practice, but you are free to use something else+ meta: { needsAuth: true } }, '/login': { component: LoginPage,+ meta: { needsAuth: false } },}
<!-- anywhere in your templates--><Label :text="$navigator.route.meta.needsAuth" />
// or in any vue componentexportdefault{methods:{doStuff(){if(this.$navigator.route.meta.needsAuth){// do stuff}}}}
// logs the current path in the default navigatorconsole.log(this.$navigator.path)// logs the current path in the second navigator (See Multiple Navigators section for more details)console.log(this.$navigator.paths.second)
This package provides 2 methods for navigation,$navigator.navigate
and$navigator.back
$navigator.navigate(to, options)
is used for all forward navigation
to
is the path to navigate to (ex.:/home
)options
is an optional object, which accepts all options supported byManual Routing
For example, given you are on a Login page, and successfully log in you would navigate to the Home page with
this.$navigator.navigate('/home',{clearHistory:true})
Note that we usedclearHistory: true
to prevent the back button from going back to the login page.
$navigator.back(options, backstackEntry)
is an alias to$navigateBack
It is possible to use multiple<Navigator>
elements by providing each new Navigator with a uniqueid
.
<template><!-- this is the default navigator and can omit the id--> <Navigator /><!-- shows the current path of the default navigator--> <Label:text="$navigator.path" /><!-- this is the second navigator and it MUST have a unique id--> <Navigatorid="second" /><!-- shows the current path of the second navigator--> <Label:text="$navigator.paths.second" /></template><script>exportdefault { methods: {someMethod() {// navigate the default Navigatorthis.$navigator.navigate('/new-path')// navigate the second default Navigator by specifying the frame optionthis.$navigator.navigate('/new-path', { frame:'second' })// navigate back the default Navigatorthis.$navigator.back()// navigate back the second Navigatorthis.$navigator.back({ frame:'second' }) } } }</script>
typeModalOptions={id:string}&ShowModalOptionsthis.$navigator.modal(path:string,options:ModalOptions);
The default id for modal navigators ismodalNavigator
but can be changed by passing anid
inside the ModalOptions.
// use the default id for the modalthis.$navigator.modal('/path',{fullscreen:true})// to navigate the modal to '/other'this.$navigator.navigate('/other',{frame:'modalNavigator'})// use a different id for the modalthis.$navigator.modal('/path',{fullscreen:true,id:'myModal'})// to navigate the myModal modal to '/other'this.$navigator.navigate('/other',{frame:'myModal'})
About
A simple router for NativeScript-Vue, built on top of $navigateTo to simplify routing from within components
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.