npm 包 @bouzuya/cyclejs-history-driver 使用教程

什么是 @bouzuya/cyclejs-history-driver?

@bouzuya/cyclejs-history-driver 是一个基于 Cycle.js 的自定义驱动程序 (custom driver),用于管理应用程序的历史纪录 (history) 信息。它可以记录用户的页面访问历史,并提供访问历史的回溯支持,方便用户在不同的页面之间切换。

如何使用

安装

使用 npm 安装 @bouzuya/cyclejs-history-driver:

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

导入

在 Cycle.js 应用程序的驱动程序 (drivers) 中导入 @bouzuya/cyclejs-history-driver:

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

创建 History Driver

在 Cycle.js 应用程序的 drivers 中创建 history driver,如下所示:

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

API

location$

history driver 提供了一个 location$ 流 (stream),它用于获取当前应用的 location 对象。调用 location$ 会返回一个 RxJS observable 对象,你可以根据 observable 的事件流做出相应的行为。

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

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

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

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

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

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

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

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

API

以下是可用的 API:

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

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

location$

history driver 提供了 location$,它用于获取当前应用的 location 对象。它是一个 RxJS observable 对象。调用 location$会返回这个 observable。在订阅location$` 流的过程中,你可以得到当前的浏览器位置信息。

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

push()

push() 是一个用于向 history stack 中添加一个新的记录的函数。它接收一个 url string 作为参数。你可以从您的UI组件 push url 到 history stack 应用程序中。可通过 .subscribe 订阅这个 stream。

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

replace()

replace() 用于在 history stack 中替换当前记录位置。它接收一个 url string 作为参数。与 push() 不同的是,它不会将一个新的记录添加到 history stack 中,它是覆盖了现有的记录。它也是一个 stream,你可以通过 .subscribe 订阅这个 stream。

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

go()

go() 接收一个参数,它是一个数字,表示应该向前(正)或向后(负)的步数。默认值是 0,这意味着当前页面重新加载。您可以使用此函数向前或向后导航历史记录。

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

示例代码

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

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

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

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

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

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

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

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

在浏览器中打开应用,你可以看到当前页面的路径信息被打印到控制台,并且点击“返回”按钮将使应用程序返回到之前的页面。

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


猜你喜欢

  • npm 包 loadme 使用教程

    什么是 loadme loadme 是一个轻量级的 JavaScript 模块加载器,可以帮助我们在前端项目中更好地管理模块,并快速地加载和使用它们。它具有以下特点: 支持现代浏览器(IE10+)和...

    2 年前
  • npm 包 nunj-starter 使用教程

    什么是 npm 包 nunj-starter? nunj-starter 是基于 nunjucks 模板引擎的一个轻量级前端模板工程,旨在为前端开发者提供快速搭建项目、模板渲染等服务。

    2 年前
  • npm 包 react-category-select 使用教程

    在前端开发中,经常需要实现分类选择的功能,而 react-category-select 就是一个非常好用的 npm 包,可以帮助我们快速实现分类选择的功能。本文将详细介绍 react-categor...

    2 年前
  • npm 包 react-native-video-player-fork 使用教程

    在前端开发中,视频播放是一项很重要的技术,而在 React Native 中,我们可以使用 npm 包 react-native-video-player-fork 来方便地实现视频播放功能。

    2 年前
  • npm 包 recognize-speech 使用教程

    简介 NPM 是一个开放源代码的 JavaScript 打包管理工具,许多前端工程师都已经离不开它。而 recognize-speech 是一种基于浏览器的语音识别工具,可以通过 npm 包很方便地集...

    2 年前
  • npm 包 serviceworker-storage 使用教程

    在现代 Web 应用中,Service Worker 越来越受到开发者的青睐。Service Worker 可以拦截和处理网络请求,从而提供离线和离线缓存能力,进一步提升 Web 应用的用户体验。

    2 年前
  • npm 包 smallest-script-loader 使用教程

    在现代的前端开发工作中,我们常常需要使用外部的 JavaScript 库或插件。在引入这些 JavaScript 库或插件时,我们需要编写一些代码来加载这些外部资源,而且一些外部资源比较大,使用传统的...

    2 年前
  • npm 包 excel-to-html-table 使用教程

    在前端开发中,将 Excel 表格转换成 HTML 表格常常是需要的,这时我们可以使用 excel-to-html-table 这个 npm 包。在本文中,我们将详细介绍如何使用 excel-to-h...

    2 年前
  • npm 包 `slim-package` 使用教程

    介绍 slim-package 是一个用于从已有的 npm 包中提取出需要的文件并打包成新的 npm 包的工具。通常情况下,我们在使用第三方 npm 包时,可能只需要其中一部分功能,但是如果直接使用该...

    2 年前
  • npm 包 @beardedtim/api-data-mapper 使用教程

    在前端开发中,我们常常需要和 API 打交道,然而 API 返回的数据可能不太符合我们的使用需求。这时候,数据映射就可以派上用场了。而 @beardedtim/api-data-mapper 这个 n...

    2 年前
  • 前端开发必备之——tslint-jasmine-no-skip-or-focus-fork

    如果你是一名前端开发,你一定会使用一些npm包来协助你的工作。tslint-jasmine-no-skip-or-focus-fork是一个非常实用的npm包,它可以帮助你在开发过程中更好地管理和规范...

    2 年前
  • 可移除的中间件:removable-middleware

    在前端开发中,中间件是不可或缺的一部分。这些中间件可以用来处理请求、路由、错误处理等等。然而,有时候我们需要动态地添加或移除一些中间件。这时候就需要用到 removable-middleware 这个...

    2 年前
  • npm 包 one-ready 使用教程

    前言 近年来,前端技术快速发展,大量新技术层出不穷。在这个过程中,npm 成为了前端工程师最常用和最方便的包管理器,包括一些小而精的 npm 包也逐渐受到了广泛的关注和使用。

    2 年前
  • npm 包 hexo-include-remote 使用教程

    介绍 hexo 是一款基于 Node.js 的静态网站生成器,其支持各式各样的主题、渲染器以及插件。而 hexo-include-remote 则是一款向 hexo 提供了远程文件引入功能的插件。

    2 年前
  • npm 包 h-js 使用教程

    在前端开发中,我们经常会需要对 HTML 进行一些操作和处理,这时候 h-js 这个 npm 包就可以发挥很大的作用。h-js 可以帮助我们实现 HTML 的选择器、操作和解析等功能。

    2 年前
  • npm 包 pprm 使用教程

    npm 包 pprm 使用教程 什么是 pprm? pprm 是一个 Node.js 模块,可用于在命令行中删除包或模块的依赖项。这个模块非常有用,可以帮助开发者快速地清理依赖关系,以便项目更高效地运...

    2 年前
  • npm 包 jsx-templates-loader 使用教程

    jsx-templates-loader 是一个用于加载 JSX 模板的 Webpack Loader 。它可以在编译 Webpack 项目时,将 JSX 模板转换为渲染函数,并且可以将模板中的变量等...

    2 年前
  • npm 包 `canvas-contribution` 使用教程

    在前端开发中,绘制图形有时是不可避免的需求,例如绘制统计图表、绘制流程图等等。而 canvas-contribution 这个 npm 包则可以帮我们更方便地完成这些需求。

    2 年前
  • npm 包 task-timeout 使用教程

    什么是 task-timeout? 在前端开发过程中,我们可能会需要设置异步任务的运行时间,以便在任务无法在规定时间内完成时停止任务,避免浏览器阻塞等问题。这个时候,我们可以使用 task-timeo...

    2 年前
  • npm 包 raml-typescript-generator 使用教程

    什么是 raml-typescript-generator raml-typescript-generator 是一个基于 RAML 文件生成 TypeScript 类的 npm 包,它可以根据规定的...

    2 年前

相关推荐

    暂无文章