Flexible and powerful routing for MarkoJS
npm install marko-router5Flexible and powerful routing for MarkoJS.
Full documentation: https://jesse1983.github.io/marko-router5
Install marko-router5 package:
``sh`
npm i marko-router5 -DUsage
Define routes on main marko file:
`html
$ const routes = [
{ name: 'home', path: '/', component: require('./home.marko') },
{ name: 'products', path: '/products', component: require('./products.marko') },
{ name: 'contact', path: '/contact', component: require('./contact.marko') },
]
Navigate
Add
route-link tag instead a tag:`html
Home
Products
Contact
`or
Import
navigate method:`js
const { navigate } = require('marko-router5');navigate('/products');
`Nested routes
`js
$ const routes = [
{ name: 'products', path: '/products', component: require('./products.marko'), children: [
{ name: 'notebooks', path: '/notebooks', component: require('./notebooks.marko') },
{ name: 'desktops', path: '/desktops', component: require('./desktops.marko') },
{ name: 'others', path: '/others', component: require('./others.marko'), children: [
{ name: 'cpu-processors', path: '/cpu-processors', component: require('./cpu-processors.marko') },
{ name: 'memory-cards', path: '/memory-cards', component: require('./memory-cards.marko') },
] },
] },
]
`-----
Advanced
Router
$3
#### Options
All router options are on Router Options page.
`html
`#### InitialPath
A initial path can be a string (ex:
/dashboard) or a bool (if true, initial path will be current window location).`html
`#### noWrapper
Remove
wrapper.`xml
`$3
#### transitionStart
Before route change. Value: an object with next and previous route state
{ toState, fromState }:`
class {
transitionStartMethod(states) {
// use states.toState or states.fromState
}
}
`#### transitionSuccess
After route change. Value: an object with next and previous route state
{ toState, fromState }:`
class {
transitionSuccessMethod(states) {
// use states.toState or states.fromState
}
}
`#### transitionError
After route change and throw an error. Value: an object with next and previous route state and the error
{ toState, fromState, err }:`
class {
transitionErrorMethod(states) {
// use states.toState, states.fromState or states.err
}
}
`Route Link
$3
#### ActiveClass
Automatically current link will have class
active. You can change class name using attribute active-class:
`html
Home
`
Result is:
`html
Home
`#### ParentClass
If you need add
active class on parent element instead a tag, add parent-class:
`html
Home
`
Result is:
`html
Home
``