npm 包 redux-json-router 使用教程

阅读时长 7 分钟读完

redux-json-router 是一个基于 redux 的 router 库,它可以让你在应用中快速实现路由功能。该库支持基于 json 的路由配置,并且可以自定义 middleware。

安装

首先,使用 npm 安装 redux-json-router:

使用方法

创建路由

创建路由配置文件 routes.json

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

其中,routes 是一个数组,每个元素表示一个路由。每个路由对象包含 pathcomponent 两个属性,分别表示路由路径和对应的组件。

创建 reducer

创建路由 reducer 文件 reducer.js

redux-json-router 提供了一个 routerReducer,用于在 redux 中存储当前路由信息。

创建 store

创建 store 文件 store.js

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

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

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

redux-json-router 提供了一个 routerMiddleware,可以拦截路由 action,并修改 store 中的路由信息。

创建路由组件

在组件中使用 LinkRoute 组件:

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

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

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

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

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

在上面的代码中,Link 组件用于生成指向不同路由的链接,Route 组件用于渲染对应路由的组件。

自定义 middleware

redux-json-router 在路由切换的过程中,提供了四个 middleware 钩子,分别是 onBeforeRouteChangeonRouteChangeSuccessonRouteChangeCancelledonRouteChangeError,可以进行对应的中间件拦截,例如:

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

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

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

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

示例代码

一个完整的基于 redux-json-router 的示例代码如下:

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

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

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

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

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

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

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

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

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

总结

使用 redux-json-router,可以快速实现前端应用中的路由功能,并支持自定义 middleware。同时,该库还提供了 RouteLink 等组件,方便开发者进行路由相关的操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005619881e8991b448df53b

纠错
反馈