分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

js 实现路由功能

发布时间:2023-09-06 02:03责任编辑:熊小新关键词:js

class Router {
  constructor() {
    this.routes = []
  }
  handle(pattern, handler) {
    this.routes.push({ pattern, handler })
  }
  exec(pathname) {
    for (const route of this.routes) {
      if (typeof route.pattern === ‘string‘) {
        if (route.pattern === pathname) {
          return route.handler()
        }
      } else if (route.pattern instanceof RegExp) {
        const result = pathname.match(route.pattern)
        if (result !== null) {
          const params = result.slice(1).map(decodeURIComponent)
          return route.handler(...params)
        }
      }
    }
  }
}
const router = new Router()
router.handle(‘/‘, homePage)
router.handle(/^\/users\/([^\/]+)$/, userPage)
router.handle(/^\//, notFoundPage)
function homePage() {
  return ‘home page‘
}
function userPage(username) {
  return `${username}‘s page`
}
function notFoundPage() {
  return ‘not found page‘
}
console.log(router.exec(‘/‘)) // home page
console.log(router.exec(‘/users/john‘)) // john‘s page
console.log(router.exec(‘/foo‘)) // not found page

js 实现路由功能

原文地址:https://www.cnblogs.com/honghong87/p/9291278.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved