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 jQuery中的DOM操作
Mar 21 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
Dec 05 Javascript
js验证IP及子网掩码的合法性有效性示例
Apr 30 Javascript
基于AngularJS前端云组件最佳实践
Oct 20 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
Nov 16 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
微信小程序五星评分效果实现代码
Apr 06 Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
Node.js实现批量下载图片简单操作示例
Jan 18 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
Sep 11 Javascript
原生微信小程序开发中 redux 的使用详解
Feb 18 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
jQuery 位置插件
2008/12/25 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
js实现蒙版效果
2020/01/11 Javascript
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
python搭建微信公众平台
2016/02/09 Python
Python单例模式实例详解
2017/03/01 Python
python实现zabbix发送短信脚本
2018/09/17 Python
python虚拟环境迁移方法
2019/01/03 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
深入理解Python异常处理的哲学
2019/02/01 Python
Python循环实现n的全排列功能
2019/09/16 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
Python requests模块cookie实例解析
2020/04/14 Python
python代码能做成软件吗
2020/07/24 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
Java如何读取CLOB字段
2013/10/10 面试题
车辆安全检查制度
2014/01/12 职场文书
单位授权委托书范文
2014/08/02 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
详解Python中__new__方法的作用
2022/03/31 Python