npm包aurelia-redux-immutable使用教程

阅读时长 10 分钟读完

介绍

aurelia-redux-immutable 是一个用于在Aurelia中处理redux-immutable(一个使用Immutable.js的Redux绑定)的组件。它提供类似React-Redux库的api,同时也封装了 Immutable.js 的绑定和连接。

在本教程中,我们将一步步学习如何使用 aurelia-redux-immutable,通过简单的示例来达到深入理解其核心概念和指导意义。

前置条件

  • 已创建好 Aurelia Cli 项目
  • 已配置好 TypeScript

安装

通过 npm 安装 aurelia-redux-immutable

然后,安装 redux-immutable 和 Immutable.js:

使用

添加插件

在Aurelia的主文件(app.ts)中,添加 aurelia-redux-immutable。我们还需要添加一个 Redux 的 store 对象,以便在组件中使用。

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

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

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

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

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

创建 reducer

创建 Reducer 的方式与在 React 中通常相同。我们使用 Immutable.js 来更新状态,aurelia-redux-immutable 会使用 Angular 的 ChangeDetectionRef 自动检测状态变化并更新视图。

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

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

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

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

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

创建 store

我们使用 redux 的 createImmutableStore 函数创建 Redux store。在这个案例中,我们使用 combineReducers 函数来组合 reducers。

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

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

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

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

使用 connect

在 Aurelia 项目中使用 Aurelia patterns 和 typescript 来创建组件。使用 connect 来将组件连接到 Redux store。

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

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

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

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

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

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

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

示例代码

app.ts

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

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

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

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

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

store -> myReducer.ts

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

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

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

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

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

store -> index.ts

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

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

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

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

app.component.ts

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

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

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

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

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

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

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

app.html

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

结论

至此,我们通过一个Aurelia和Redux的示例,学习了如何在 Aurelia 中使用 Redux。我们使用 aurelia-redux-immutable 组件,提供了类似于 react-redux 的 API,并有效地连接了 Immutable.js 与 Redux。在实践中,我们可以通过 Redux 常规API(createStore,combineReducers和其他Middleware)来增强、操作、连接和处理我们的数据。这种类似于React的方法给予使用Aurelia同样的强大功能,并提供了一些实际开发中的参考思路。

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

纠错
反馈