简介
最近,有很多开源社区开始使用Immutable.js作为不可变数据结构,因其具有更好的性能和可读性。然而,在某些情况下,我们可能希望仅仅使用它的一些功能。
plain-immutable这个npm包就是用于仅仅提供Immutable.js的深度转换和比较功能,而不需要担心Immutable的额外开销。
本文就为大家介绍plain-immutable的详细使用方法,力求让大家更好的掌握Immutable相关的编程技术。
安装
我们可以通过npm来安装plain-immutable。
首先,需要在终端中执行以下命令:
npm install plain-immutable --save
使用
引入
使用plain-immutable的第一步是从npm包中引入模块。请查看以下代码片段:
import { Map } from 'immutable'; import { toImmutable, is } from 'plain-immutable';
这里我们引入了Map和两个plain-immutable的函数:toImmutable和is。
toImmutable
toImmutable用于把js对象转换为immutable的数据结构。它创建了Immutable.Map对象中的所有嵌套对象,并且可以从中读取嵌套的Immutable.List和Immutable.Map。
以下是toImmutable函数的用法:
const jsObject = { name: "James", interests: ["Coding", "Books"] }; const immutableObject = toImmutable(jsObject);
我们可以看到,我们将普通js对象传递给toImmutable,它会将其转换为immutable对象。
is
is函数是用于比较两个immutable对象是否相等,而不管它们当中包含的嵌套数据类型。
以下是is函数的用法:
const a = toImmutable({ foo: 'bar' }); const b = toImmutable({ foo: 'bar' }); const c = toImmutable({ foo: 'baz' }); console.log(is(a, b)); // true console.log(is(a, c)); // false
如你所见,在我们的示例中is函数将我们传递给它的两个immutable对象进行其比较操作。
示例代码
接下来,我们将展示一些完整的示例代码,以便您更好地了解plain-immutable的使用方法。
示例1
-- -------------------- ---- ------- ------ - --- - ---- ------------ ------ - ------------ -- - ---- ------------------ ----- -------- - - ----- -------- ---- --- ---------- ---------- --------- -------- - - ----- ------- ---- --- ---------- --------- ---------- -- - ----- ---------- ---- --- ---------- ---------- ------ -- -- -- ----- --------------- - ---------------------- ----------------------------- ------------------ ------
上面的代码将js对象转换为immutable对象,并比较它们是否相等。
示例2
-- -------------------- ---- ------- ------ - --- - ---- ------------ ------ - ------------ -- - ---- ------------------ ----- -------- - - ----- -------- ---- --- ---------- ---------- --------- -------- - - ----- ------- ---- --- ---------- --------- ---------- -- - ----- ---------- ---- --- ---------- ---------- ------ -- -- -- ----- --------------- - ---------------------- ------------------------------- ---- -- - ---------------- ---------- - ------------ - ------- ---
上面的代码利用plain-immutable中的toImmutable函数把js对象转换为immutable对象,然后通过遍历来打印它的属性和值。
示例3
-- -------------------- ---- ------- ------ - --- - ---- ------------ ------ - ------------ -- - ---- ------------------ ----- -------- - - ----- -------- ---- --- ---------- ---------- --------- -------- - - ----- ------- ---- --- ---------- --------- ---------- -- - ----- ---------- ---- --- ---------- ---------- ------ -- -- -- ----- --------------- - ---------------------- ----- ------------------ - --------------------------------- -- -------- -------- ---------------------------------- ------------- ----- -------- ---- --- ---------- ---------- --------- -------- - - ----- ------- ---- --- ---------- --------- ---------- -- - ----- ---------- ---- --- ---------- ---------- ------ -- -- ----- ------
我们使用setIn方法更新了immutableObject,然后我们使用toImmutable将新对象与预期结果进行比较,以确保更新成功。
结论
plain-immutable是一个非常实用的npm包,用于提供Immutable.js的深度转换和比较功能,而不需要担心Immutable的额外开销。通过上述的学习,相信大家对使用plain-immutable相关技术更加熟悉,同时也会为相关项目开发提供帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600555a781e8991b448d2c41