JS实现简单路由器功能的方法


Posted in Javascript onMay 27, 2015

本文实例讲述了JS实现简单路由器功能的方法。分享给大家供大家参考。具体实现方法如下:

var wawa = {};
wawa.Router = function(){
  function Router(){
  }
  Router.prototype.setup = function(routemap, defaultFunc){
    var that = this, rule, func;
    this.routemap = [];
    this.defaultFunc = defaultFunc;
    for (var rule in routemap) {
      if (!routemap.hasOwnProperty(rule)) continue;
      that.routemap.push({
        rule: new RegExp(rule, 'i'),
        func: routemap[rule]
      });       
    }
  };
  Router.prototype.start = function(){
    console.log(window.location.hash);
    var hash = location.hash, route, matchResult;
    for (var routeIndex in this.routemap){
      route = this.routemap[routeIndex];
      matchResult = hash.match(route.rule);
      if (matchResult){
        route.func.apply(window, matchResult.slice(1));
        return; 
      }
    }
    this.defaultFunc();
  };
  return Router;
}();
var router = new wawa.Router();
router.setup({
  '#/list/(.*)/(.*)': function(cate, id){
      console.log('list', cate, id);
    },
  '#/show/(.*)': function(id){
      console.log('show', id); 
    }
}, function(){
  console.log('default router');
});
router.start();

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
jquery中checkbox全选失效的解决方法
Dec 26 Javascript
jQuery中nextUntil()方法用法实例
Jan 07 Javascript
全面解析Bootstrap手风琴效果
Apr 17 Javascript
vue2.0+webpack环境的构造过程
Nov 08 Javascript
canvas 实现中国象棋
Feb 17 Javascript
Vue v2.5 调整和更新不完全问题
Oct 24 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
Sep 26 Javascript
详解Angular Karma测试的持续集成实践
Nov 15 Javascript
微信小程序实现音频文件播放进度的实例代码
Mar 02 Javascript
JavaScript基于用户照片姓名生成海报
May 29 Javascript
javascript实现移动端红包雨页面
Jun 23 Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 #Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
May 26 #Javascript
js实现文本框选中的方法
May 26 #Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 #Javascript
javascript删除元素节点removeChild()用法实例
May 26 #Javascript
JavaScript事件委托实例分析
May 26 #Javascript
JQuery选择器、过滤器大整理
May 26 #Javascript
You might like
php读取目录所有文件信息dir示例
2014/03/18 PHP
小谈php正则提取图片地址
2014/03/27 PHP
php构造函数的继承方法
2015/02/09 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
node.js入门教程
2014/06/01 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Python函数式编程
2017/07/20 Python
python多进程实现进程间通信实例
2017/11/24 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
Python自定义线程池实现方法分析
2018/02/07 Python
python实现聚类算法原理
2018/02/12 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Python hashlib模块加密过程解析
2019/11/05 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
使用python远程操作linux过程解析
2019/12/04 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
波兰补充商店:Muscle Power
2018/10/29 全球购物
JPA的特点
2014/10/25 面试题
婚纱摄影师求职信范文
2014/04/17 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书