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 相关文章推荐
可以用来调试JavaScript错误的解决方案
Aug 07 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
Jul 23 Javascript
jquery中ajax处理跨域的三大方式
Jan 05 Javascript
JS中作用域和变量提升(hoisting)的深入理解
Oct 31 Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 Javascript
详解vue-cli开发环境跨域问题解决方案
Jun 06 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
Jun 13 Javascript
javascript 中select框触发事件过程的分析
Aug 01 Javascript
对于防止按钮重复点击的尝试详解
Apr 22 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
Aug 14 Javascript
详解Vue之计算属性
Jun 20 Javascript
typescript编写微信小程序创建项目的方法
Jan 29 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
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
PHP多进程简单实例小结
2019/11/09 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
Swift中的协议(protocol)学习教程
2016/07/08 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
医药类个人求职的自我评价
2014/02/12 职场文书
环保建议书100字
2014/05/14 职场文书
体育课外活动总结
2014/07/08 职场文书
2014年安全生产责任书
2014/07/22 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
婚内房产协议书范本
2014/10/02 职场文书
酒桌上的开场白
2015/06/01 职场文书
工资证明范本
2015/06/12 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
创业计划书之水果店
2019/07/18 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python