StateMan
stateman: A tiny foundation that provides nested state-based routing for complex web applications.
stateman is highly inspired by ui-router; you will find many features similar to it.
But stateman is a standalone library with an extremely tiny codebase (10kb minified). Feel free to integrate it with whatever framework you like!
Reference
Feature
- nested routing support.
- standalone with tiny codebase.
- async routing support if you need asynchronous logic in navigating. Support Promise
- html5 history supported, fallback to hash-based in old browser.
- concise API, deadly simple to getting start with it.
- support IE6+ and other modern browsers.
- well tested, born in large product.
Quick Start
You may need a static server to run the demo. puer is simple to get start.
just paste the code to your own index.html
, and load it up in a browser.
StateMan Test /home" /contact" /contact/list /contact/2 /contact/2/option /contact/2/message
open the console to see the output when navigating.
Demos
Simple Layout Demo:
1.The code in this demo is for demonstration only. In a production development, you will want a view layer to create nested views.
Regularjs (Living Template) + requirejs + stateman: Link
2. A simple SPA built uponI create a simple wrapping (regular-state) to integrate stateman with Regularjs, which makes it easy to build a single Page Application. thanks to the concise API, the code is very clean. You will find that integrating stateman with other libraries is also simple.
Browser Support
- Modern browsers, including mobile devices
- IE6+
Installation
Bower
bower install stateman
stateman.js
have been packaged as a standard UMD, so you can use it in AMD, CommonJS and as a global.
npm (browserify or other based on commonjs)
npm install stateman
To use:
var StateMan = ;
spm
spm install stateman
To use:
var StateMan = ;
Component
component install leeluolee/stateman
To use:
var StateMan = ;
Direct downloads
Examples
Some basic examples can be found in the examples directory.
run demo local
- clone this repo
npm install gulp -g && npm install
gulp server
- check the example folder
LICENSE
MIT.