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 包 js-buffer-diff 使用教程

    什么是 js-buffer-diff js-buffer-diff 是一个 npm 包,用于比较两个二进制数据的差异,并输出差异信息。这个包可以帮助前端开发者在处理二进制数据时更加便捷和高效地进行数据...

    3 年前
  • npm 包 mongoose-plugin-soft-deleted 使用教程

    介绍 mongoose-plugin-soft-deleted 是一个用于 mongoose 的软删除插件,它将所有删除操作转化为将被删除的文档的 deleted 字段设置为 true。

    3 年前
  • npm 包 mst-cm-fe 使用教程

    介绍 mst-cm-fe 是一个基于 React 和 Ant Design 的组件库,旨在快速构建企业级管理后台。该库集成了大量常用的组件和样式,让开发者能够快速搭建出美观、简洁、易用的管理后台。

    3 年前
  • npm 包 nodejs-state-machine 使用教程

    在前端开发中,我们经常需要处理各种复杂的业务逻辑和状态管理,这时候使用状态机就显得尤为重要。而在 Node.js 中,有一款常用的状态机库就是 nodejs-state-machine。

    3 年前
  • NPM包 React-Native-Keychain-Sensitive-Info 使用教程

    在现代移动应用中,保护用户敏感信息的安全是至关重要的。为了避免数据泄露和用户信息被盗用,开发人员需要将这些信息存储在可靠的、受保护的存储区域中。为此,React Native提供了一个名为react-...

    3 年前
  • npm 包 multichainstream 使用教程

    在前端开发中,我们经常需要处理多个数据流,比如用户输入、WebSocket 数据、定时器等。而 multichainstream 正是为此而生的一个 npm 包。它能够连接多个数据流,并统一处理它们的...

    3 年前
  • npm 包 @pedromsilva/data-either 使用教程

    在前端开发过程中,经常需要处理异常情况,比如 API 请求失败、用户输入错误等等。数据 Either 是一种流行的编程概念,它提供了一种方式来管理这些异常情况。 @pedromsilva/data-e...

    3 年前
  • npm 包 distance-between-points 使用教程

    在前端开发中,计算两个点之间的距离是一项常见的任务。在 JavaScript 中,我们可以使用许多不同的算法来计算这个距离,但有时我们需要一些额外的工具来帮助我们完成这项任务。

    3 年前
  • npm 包 homebridge-mi-ir-remote-electrolux 使用教程

    前言 homebridge-mi-ir-remote-electrolux 是一款基于 Homebridge 平台,使用小米红外遥控器控制 Electrolux 空调的 npm 包。

    3 年前
  • npm 包 @angular-package/change-detection 使用教程

    前言 在前端开发中,为了实现视图和数据的同步更新,Angular 应用框架提供了自己的变更检测机制。不过有时候,这个变更检测机制会出现性能问题,尤其是在数据量较大的情况下。

    3 年前
  • NPM包 @gather-research/react-gather 使用教程

    前言 React是一款流行的前端JavaScript库,它可以快速构建高效且响应式的用户界面。一些第三方库和插件可以进一步提高React的开发效率,而其中之一就是npm包 @gather-resear...

    3 年前
  • npm 包 feelslikehome-client 使用教程

    介绍 feelslikehome-client 是一个前端 npm 包,用于在客户端呈现和渲染从 feelslikehome 服务器获取的数据。它提供了一些强大的组件和工具,用于快速构建定制化的 fe...

    3 年前
  • npm 包 liri_kf 使用教程

    在前端开发中,我们经常需要依赖一些第三方库和插件来提高工作效率,其中 npm 包是非常常用的一种形式。本篇文章将介绍一个 npm 包 liri_kf 的使用教程,包括安装、配置和实际使用场景。

    3 年前
  • npm 包 medisoftware-ion2-calendar 使用教程

    简介 medisoftware-ion2-calendar 是一个基于 Ionic 2 框架的日期选择组件,可以快速地在 Ionic 2 应用中集成日历功能。它提供了日期选择、周视图、月视图和日视图等...

    3 年前
  • npm 包 villageexperts_engine 使用教程

    前言 随着前端技术的不断发展,使用 npm 包已经成为了程序员们日常工作中的一种标配工具。本文将介绍如何使用 villageexperts_engine 这个 npm 包来提高我们的 web 开发效率...

    3 年前
  • npm包@beisen-cmps/ux-platform-paging使用教程

    简介 在前端开发中,经常会遇到需要分页展示数据的需求。而@beisen-cmps/ux-platform-paging就是一个方便快捷的分页组件。该组件在实现分页功能的基础上,还提供了一些自定义展示效...

    3 年前
  • npm 包 react-native-sequenceimage 使用教程

    在使用 React Native 开发移动应用时,我们经常需要使用动画效果来增强用户体验。而图片序列动画是一种常见的动画形式,它通过使用多张图片,在一定时间内按顺序展示,从而产生动态效果。

    3 年前
  • npm 包 seabass 使用教程

    什么是 seabass Seabass 是一个用于构建前端 UI 界面的库,使用 seabass 可以轻松构建出整洁美观的 Web 界面。Seabass 提供了灵活且扩展性强的组件系统,可以帮助您快速...

    3 年前
  • npm 包 videojs-single-tns-counter 使用教程

    简介 videojs-single-tns-counter 是一个用于视频播放器计数的 npm 包,基于video.js的单例组件(singleton)设计,能够方便地在视频播放器中显示播放次数,并根...

    3 年前
  • npm 包 numpads 使用教程

    简介 numpads 是一款实用的 JavaScript 库,它可以为你的应用程序提供虚拟键盘。该库旨在解决一些常见的输入问题,比如用户在移动设备上时使用虚拟键盘输入的不便利性。

    3 年前

相关推荐

    暂无文章