• js路由—简单路由的实现


    路由是什么,其实就是引路人。。

    先看一个简单的路由的实现。

    路由就是根据不同的url请求,导航到不同的页面。

    这里js的路由其实是根据不同的url请求,执行不同的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]
                });             
            }
        };                    

    配置文件设置好了,在看下如果地址中有hash,并且hash能匹配到路由配置,

    那就执行对应的函数,并且把匹配传递给函数

    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();
        };

    这个如果在同一个页面中跳转,函数是不执行的,直接从浏览器地址栏输入,对应的函数才可以执行。 后续看下backbone的路由的实现

  • 相关阅读:
    Rust-数据类型
    Rust-智能指针
    Rust-使用包、Crate和模块管理不断增长的项目
    Rust-Slice类型
    Rust-引用与借用
    Rust 的核心功能-所有权(ownership)
    How to fix “sudo: command not found error”
    ABC195 F
    CF1501D Two chandeliers【拓展欧几里得+二分】
    CCA的小球【容斥定理】
  • 原文地址:https://www.cnblogs.com/jingwensophie/p/4863784.html
Copyright © 2020-2023  润新知