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 相关文章推荐
jquery api参考 visualjquery 中国线路 速度快
Nov 30 Javascript
理解Javascript_10_对象模型
Oct 16 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
Jan 04 Javascript
使用javascript实现监控视频播放并打印日志
Jan 05 Javascript
jquery自定义表格样式
Nov 23 Javascript
AngularJS 过滤器(自带和自建)详解
Sep 19 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 Javascript
js鼠标移动时禁止选中文字
Feb 19 Javascript
Vee-Validate的使用方法详解
Sep 22 Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 Javascript
在vue中根据光标的显示与消失实现下拉列表
Sep 29 Javascript
vue中使用v-for时为什么不能用index作为key
Apr 04 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(4) php 函数 补充2
2010/02/15 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
javascript 数组学习资料收集
2010/04/11 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
详解Vue方法与事件
2017/03/09 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
详解webpack2异步加载套路
2018/09/14 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
python实现哈希表
2014/02/07 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
Python语言生成水仙花数代码示例
2017/12/18 Python
python数据挖掘需要学的内容
2019/06/23 Python
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
学期评语大全
2014/04/30 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
人才市场接收函
2015/01/30 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
PHP解决高并发问题
2021/04/01 PHP
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA
Vue深入理解插槽slot的使用
2022/08/05 Vue.js