Comments (1)
Mithril's router requires a URL component to tie to (either location.pathname
, location.hash
or location.search
)
With that being said, creating a custom URL-less router is pretty easy:
Let's say you have an app
//your app's namespace
var app = {};
//some modules
app.module1 = { /*...*/ }
app.module2 = { /*...*/ }
You can add an object to hold your routes like this:
//routes to point to said modules
app.routes = {
"foo": app.module1,
"bar": app.module2
};
Then you can create a "redirect" method to call programmatically:
//utility to programmatically route
app.route = function(route) {
m.module(rootElement, app.routes[route])
}
//usage:
app.route("foo") //runs module1
And, optionally, you can create a helper tool to make links routed also
//utility to make links routeable
app.router = function(element, isInit) {
if (!isInit) {
m.module(rootElement, app.routes[element.href])
}
}
//usage:
m("a[href=foo]", {config: app.router})
from mithril.js.
Related Issues (20)
- Is there any chance Mithril could run in Deno? HOT 4
- Can I Mithril for server-side components? HOT 3
- I can prevent a mithril component from scrolling to the top on a rerender. HOT 5
- Confused about component redraws (and keys) HOT 8
- Why are v.attrs passed to oninit() for a child component an empty object? HOT 5
- There is no onsize/onresize lifecycle method HOT 4
- Typescript return type for mithril components HOT 14
- warning 'reuse attrs object' while receiving a component from high order function/component HOT 4
- Broken link to ospec in API page
- make vite the default HOT 4
- Redraw on resolve of async event handler HOT 1
- Please update the Vue comparison HOT 1
- onbeforeremove not being triggered when list element is removed HOT 2
- Form attribute not set in custom element HOT 1
- Add "main" field to package.json
- Need help with "Failed to execute 'insertBefore' on 'Node'" errors. HOT 2
- Is there a bug with dynamically changing svgs? HOT 15
- Current vnode `dom` property is undefined in `onbeforeupdate` HOT 4
- Not getting any events to handle resize HOT 1
- Been a while since the last commit, is Mithril complete? or abandoned? HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mithril.js.