npm 包 ember-enhanced-computed 使用教程

阅读时长 6 分钟读完

前端开发者经常需要处理复杂的数据,例如根据多个属性计算派生属性、将嵌套数据进行展开、对数据进行分组等。这些数据处理操作是我们的业务逻辑中不可避免的一部分。为了解决这些常见的问题,我们可以使用 ember-enhanced-computed 这个 npm 包。

本文将介绍如何使用 ember-enhanced-computed 解决常见的数据处理问题,并带有详细的示例代码。

安装

使用 npm 安装 ember-enhanced-computed。

基本使用

ember-enhanced-computed 提供了一种新的方式来定义计算属性。使用 enhanced-computed 定义的属性将不会被缓存,每次计算时都会重新计算。

定义计算属性

我们可以使用 enhanced-computed 函数来定义一个计算属性。

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

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

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

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

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

在上面的代码中,我们定义了一个 Person 类,并使用 enhanced-computed 定义了 fullName 属性。在 fullName 属性的计算函数中,我们使用了 this.get() 方法来获取 firstName 和 lastName 属性,然后将它们组成 fullName 字符串。当 firstName 或 lastName 属性被改变时,fullName 属性将发生改变。

定义依赖

使用 enhanced-computed 的一个好处是它允许我们指定计算属性的依赖。这意味着计算属性将只在它所依赖的属性发生改变时才会重新计算。我们可以使用 belongsTo、hasMany、array、object 这些 helper 函数来指定依赖。

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

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

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

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

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

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

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

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

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

在上面的代码中,我们分别使用 belongsTo、hasMany、array、object 函数来定义了 fullName、tagCount、firstTag 以及 tagsObject 属性的依赖。使用这些函数只需要将属性的名字作为参数传递进去即可。

其他功能

除了定义计算属性和依赖外,ember-enhanced-computed 还提供了一些其他的功能:

  • transform:将计算属性的值进行变换;
  • filter:在计算属性中添加过滤操作;
  • sort:在计算属性中添加排序操作;
  • uniq:在计算属性中进行去重操作;
  • mapBy:在计算属性中进行映射操作。

以下是一个使用 transform 函数的示例:

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

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

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

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

在上面的代码中,我们使用 transform 函数将 fullName 属性返回的字符串进行了大写处理。

总结

使用 ember-enhanced-computed 可以方便地处理常见的数据计算问题。本文介绍了如何定义计算属性、定义依赖以及使用其他功能。希望读者可以通过本文学到如何使用 ember-enhanced-computed,进一步提高数据处理能力。完整示例代码请参考这里

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

纠错
反馈