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 使用手册(五)
Sep 23 Javascript
JQuery 学习技巧总结
May 21 Javascript
浅谈javascript的原型继承
Jul 25 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
Aug 01 Javascript
js获取所有checkbox的值的简单实例
May 30 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
Jun 20 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
Bootstrap源码学习笔记之bootstrap进度条
Dec 24 Javascript
node-sass安装失败的原因与解决方法
Sep 04 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
Mar 07 Javascript
React更新渲染原理深入分析
Dec 24 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生成缩略图的函数代码(修改版)
2011/01/18 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
Django日志模块logging的配置详解
2017/02/14 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
巴黎一票通:The Paris Pass
2018/02/10 全球购物
药学专业毕业生求职信
2013/10/20 职场文书
《石榴》教学反思
2014/03/02 职场文书
手机银行营销方案
2014/03/14 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
财务人员岗位职责
2015/02/03 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL
MySQL创建管理KEY分区
2022/04/13 MySQL