npm 包 vanillajs-router 使用教程

简介

vanillajs-router 是一个基于原生 JavaScript (Vanilla JavaScript)实现的路由库。它可以将 URL 映射到 JavaScript 函数上,从而实现对页面的控制和改变。

该库只有不到 3KB,非常轻量级,并且不依赖于其他任何库或框架。它相当于 Angular、React 或 Vue 的轻量级替代品,可以更灵活地控制你的应用程序。

该教程将深入介绍该库的使用方法,帮助你更好地理解和掌握该技术,从而更好地构建你的 JavaScript 应用程序。

安装

你可以通过 npm 安装 vanillajs-router

--- ------- ----------------

或者,你可以直接在 HTML 中引用该库:

------- -------------------------------------------

使用

创建 router 实例

我们首先需要创建一个 vanillajs-router 的实例:

----- ------ - --- ------------------

注册路由

要注册路由,可以使用 add 方法。该方法接受三个参数:

  • 规则:一个字符串,代表 URL 规则。可以包含参数,参数以 : 开头,例如:"/users/:id"
  • 回调函数:一个函数,当路由规则匹配时,将被调用。
  • 选项(可选):一个对象,包含以下可选属性:
    • listen:如果为 true,则注册后会立即开始监听该路由(默认为 false)。

以下是一个例子,我们注册了一个路由规则为 "/home"

------------------- -- -- -
  ---------------------
---

监听路由

要监听路由,可以调用 listen 方法。该方法没有参数,当 URL 的哈希值(fragment)发生变化时,将自动调用路由规则中匹配的回调函数。

以下是一个例子,当 URL 中出现 #/home 时,将自动调用对应的路由:

----------------

跳转路由

要跳转路由,可以使用 go 方法。该方法接受一个字符串参数,代表要跳转的 URL。

以下是一个例子,我们跳转到 "/home" 路由:

-------------------

带参数路由

我们可以在路由规则中使用参数,例如:

------------------------ -------- -- -
  --------------- -- - ----------------
---

如上所示,我们可以在 params 参数中获取路由规则中的参数。

我们可以像这样跳转到带参数的路由:

----------------------

嵌套路由

我们可以使用 router.add 来注册嵌套路由。例如:

----- ------ - --- ------------------

--------------- -- -- -
  ---------------------
---

----- ----------- - --- ------------------

-------------------- -- -- -
  ------------------------
---

------------------------- -- -- -
  ----------------------------
---

-------------------- -- -- -
  ------------------------
  ---------------------
---

----------------

如上面的例子,我们创建了一个管理员路由,嵌套在主路由中。当 URL 中出现 #/admin 时,将启动管理员路由,并显示管理员主页。

更多 API

除了上面提到的 API,vanillajs-router 还提供了一些其他的 API,例如:

  • remove(rule):删除指定的路由规则。
  • navigate(url):在当前页面中导航到指定 URL,并触发对应的路由函数。
  • before(callback):注册一个全局的“前置钩子”,用于在路由函数调用前进行一些操作,例如登录认证。
  • after(callback):注册一个全局的“后置钩子”,用于在路由函数调用后进行一些操作,例如统计 PV 和 UV。

结论

vanillajs-router 是一个非常简单、灵活、易用的 JavaScript 路由库。它可以帮助我们更好地构建 JavaScript 应用程序,并提供了一些非常有用的 API,例如参数化路由、嵌套路由、前置钩子和后置钩子等。

当然,对于一个成熟的 Web 应用程序而言,可能需要更复杂、更强大的路由库,例如 React Router、Angular Router 或 Vue Router 等。但是,对于一些简单的应用程序而言,vanillajs-router 可以很好地满足我们的需求。

代码范例:

----- ------ - --- ------------------

--------------- -- -- -
  ---------------------
---

-------------------- -- -- -
  -----------------------
---

------------------------ -------- -- -
  --------------- -- - ----------------
---

----- ----------- - --- ------------------

-------------------- -- -- -
  ------------------------
---

------------------------- -- -- -
  ----------------------------
---

-------------------- -- -- -
  ------------------------
  ---------------------
---

----------------

--------------------------------------------------------------- -- -- -
  --------------------
---

-------------------------------------------------------------- -- -- -
  ----------------------
---

--------------------------------------------------------------- -- -- -
  --------------------
---

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065b42c6eb7e50355dbd24


猜你喜欢

  • npm 包 npm2-wshjs-util 使用教程

    介绍 npm2-wshjs-util 是一个前端常用的工具类,主要用于实现数据类型判断、深度克隆等功能。在前端开发过程中,我们经常会用到这些功能,而 npm2-wshjs-util 包正是为了方便我们...

    3 年前
  • npm 包 plugin-container 使用教程

    简介 在现代Web前端开发中,我们经常会使用各种第三方插件来增强我们的应用程序。然而,通过单独的script标签来引入插件往往不够灵活,容易导致代码混乱且难以维护。

    3 年前
  • npm 包 tns-amap 使用教程

    在移动端开发过程中,经常需要使用地图相关的功能。而在使用 NativeScript 开发框架进行开发时,则需要使用 tns-amap 这个 npm 包来完成地图相关的操作。

    3 年前
  • npm 包 firefox-header 使用教程

    在前端开发过程中,我们常常需要定制页面的样式,而浏览器的默认样式往往难以满足我们的需求。为此,我们可以使用一些工具或库来帮助我们快速地实现效果。其中一种比较常用的方式是使用 Mozilla Firef...

    3 年前
  • npm 包 npm2-gwsh-private 使用教程

    在前端开发中,我们经常需要使用 npm 包来帮助我们完成一些工作。npm2-gwsh-private 是一个基于 npm2-gateway 的私有包发布工具。在此文章中,我们介绍此工具的使用方法,以及...

    3 年前
  • npm 包 bitcoind-rpc-dinero 使用教程

    前言 Bitcoind-rpc-dinero 是一个基于 Node.js 开发的轻量级 Bitcoin RPC 库,支持与比特币网络进行交互。本文将介绍如何使用 bitcoind-rpc-dinero...

    3 年前
  • npm 包 bitcore-build-dinero 使用教程

    在前端开发中,我们经常会需要使用一些开源的第三方库和工具来完成项目的开发。其中,npm 是 Node.js 自带的包管理器,可以方便快捷地安装、管理和更新模块。在本文中,我们将介绍一个 npm 包 b...

    3 年前
  • npm 包 bitcore-lib-dinero 使用教程

    在前端开发中,我们经常需要使用数字货币相关的功能。 bitcore-lib-dinero 是一个基于 BitcoinJS 的 JavaScript 库,可以帮助我们轻松地实现比特币和类似数字货币的功能...

    3 年前
  • npm 包 react-mic-2 使用教程

    react-mic-2 是一个用于录制麦克风音频的 React 组件。它可以很方便地在网页上进行录音,支持各种自定义操作和配置,同时还附带了多种事件回调。 安装 在项目根目录下运行以下命令: --- ...

    3 年前
  • npm 包 shunfeng 使用教程

    什么是 shunfeng? shunfeng 是一个基于 Gulp 的前端自动化构建工具。它提供了许多常用的任务,如 LESS 编译、CSS 压缩、JS 压缩、图片优化等等,可以轻松地将前端工程化。

    3 年前
  • npm 包 banyan-react-tree 使用教程

    当我们需要在前端页面中展示大量的层级关系数据时,例如树形结构,banyan-react-tree 可以帮助我们快速地实现。 banyan-react-tree 是一个基于 React 的组件库,提供了...

    3 年前
  • npm 包 db-monitor 使用教程

    db-monitor 是一个在 Node.js 环境中监控数据库的 npm 包,能够实时监测 SQL 语句的执行情况以及慢查询的信息。本文将教你如何使用 db-monitor 并深入理解它的实现原理。

    3 年前
  • npm 包 ionic-tab-slider 使用教程

    介绍 ionic-tab-slider 是一个能够在 Ionic 框架中实现滑动选项卡效果的 npm 包。通过使用 ionic-tab-slider,我们可以方便地在 Ionic 应用中实现选项卡功能...

    3 年前
  • 使用 react-fullpage.js 开发网站全屏滚动

    介绍 react-fullpage.js 是一个 NPM 包,它是基于 FullPage.js 封装的 React 组件,用于实现网站全屏滚动效果的开源组件。它极大地简化了全屏滚动的开发,使开发者可以...

    3 年前
  • npm 包 menu-args 使用教程

    前端开发中,我们经常会遇到需要编写命令行工具的情况,而在编写命令行工具时,如何优雅地解析命令行参数,是我们所面临的一个重要问题。而 menu-args 就是一个可以帮助我们解决这个问题的 npm 包。

    3 年前
  • npm 包 merge-encore-manifest-files 使用教程

    介绍 在前端开发中,需要将多个 webpack 构建后的 manifest.json 合并为一个,使得在多个应用中共享一份公共的 manifest.json,这时候可以使用 npm 包 merge-e...

    3 年前
  • npm 包 transient-fixed-data-table 使用教程

    前言 在实际的前端开发中,数据表格是一种常用的数据展示方式。然而,很多时候数据表格的列数较多,而网页的宽度比较有限,这就需要对数据表格进行固定列或滚动的处理。常规的处理方式是使用 CSS 或 Java...

    3 年前
  • npm 包 gx-di 使用教程

    gx-di 是一个前端框架依赖注入库,它可以帮助我们实现依赖注入。依赖注入是一种设计模式,可以解决程序中的耦合问题。如果我们使用依赖注入,我们可以将不同部分之间的依赖关系分离开来,这样,我们就可以轻松...

    3 年前
  • npm 包 ice-engine 使用教程

    简介 在前端开发中,我们经常使用第三方库来提高开发效率和降低代码复杂度,其中 npm 是前端开发中非常重要的一个工具。npm 是 Node.js 的包管理器,可以用来搜索、安装、升级、卸载 Node....

    3 年前
  • npm 包 sounds-webpack-plugin 使用教程

    在前端开发中,我们经常需要在应用程序中播放音频效果。在 Webpack 中,我们可以使用 sounds-webpack-plugin 这个 npm 包来帮助我们实现这个目标。

    3 年前

相关推荐

    暂无文章