gpt4 book ai didi

reactjs - Immutablejs 和 shouldComponentUpdate

转载 作者:行者123 更新时间:2023-12-02 21:00:55 24 4
gpt4 key购买 nike

如果我使用 Immutable.js,react-redux 仍然可以使用 shouldComponentUpdate 吗? connect()方法在shouldComponentUpdate()中使用shallowEqual,但从Immutable.js文档中我看到我们必须使用Immutable自己的equals()方法来检查相等性,而不是===运算符(shallowEqual使用)

考虑一下:

const map1 = Immutable.Map({a:1, b:2, c:3});
const map2 = Immutable.Map({a:1, b:2, c:3});

map1 === map2 // returns false
map1.equals(map2) // returns true

最佳答案

使用immutable.js的全部目的是在底层对象实际上没有改变时保留引用。 shallowEqual 在属性之间执行快速相等性检查,这比使用 immutable.equals 进行深度比较值有巨大优势。

示例:

let state = Immutable.Map({a: 1, b:2, c:3)}

let state2 = state.set('a', 1)

state === state2 //true because Immutable returns the same reference object since there is no changes

在您的示例中,您显式分配了两个不同的 Immutable.Map 对象,因此它在内存中是两个不同的对象,并且 map1 === map2 返回 false.

关于reactjs - Immutablejs 和 shouldComponentUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38284074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com