80 行代码写的 SPA 路由模块

1,082 阅读1分钟
原文链接: github.com

使用原生API,十分简短,支持链式语法,使用简洁优雅。

API:

Router.use(path, controller)

path: 即路径 controller: 一个包含的render等方法的对象.

var mockController = {
    render: function(){
        return "
" } onEnter: function(){ //this对象为当前组件,即{path, controller: controller}对象 } onLeave: function(){ } }

Router.default

设置默认路径

Router.run

bootstrap整个路由

DEMO:

var router = new Router('#app');
router.use('/', {
    render: function(){
        return '';
    },
    onEnter: function(){
        alert("hi i\'m here, page1");
    },
    onLeave: function(){
        alert('goodbye page1');
    }
}).use('/page2', {
    render: function(){
        return '
page2
'; }, onEnter: function(){ alert('hi page2'); }, onLeave: function(){ alert('bye page2'); } }).run();

说明

MIT Licence.