Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “返回”;FromJS";状态VS在React Redux中返回普通JS对象状态_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript “返回”;FromJS";状态VS在React Redux中返回普通JS对象状态

Javascript “返回”;FromJS";状态VS在React Redux中返回普通JS对象状态,javascript,reactjs,redux,Javascript,Reactjs,Redux,在react redux中,immutable.js的PROS部分中写到: 组件将在不应该重新渲染时重新渲染,并拒绝重新渲染 在应该的时候渲染,并跟踪导致错误的错误 渲染问题很难解决,因为组件渲染不正确 必然是那些属性被意外变异的人 这个问题主要是由返回一个突变状态引起的 对象从Redux reducer中删除。对于Immutable.JS,这个问题很简单 不存在,从而从您的应用程序中删除一整类错误 这,连同它的性能和丰富的数据API 操纵,这就是为什么Immutable.JS值得付出努力的原因

react redux
中,immutable.js的PROS部分中写到:

组件将在不应该重新渲染时重新渲染,并拒绝重新渲染 在应该的时候渲染,并跟踪导致错误的错误 渲染问题很难解决,因为组件渲染不正确 必然是那些属性被意外变异的人

这个问题主要是由返回一个突变状态引起的 对象从Redux reducer中删除。对于Immutable.JS,这个问题很简单 不存在,从而从您的应用程序中删除一整类错误

这,连同它的性能和丰富的数据API 操纵,这就是为什么Immutable.JS值得付出努力的原因

请用适当的小例子详细说明以下歧义

  • 我不明白当一个组件在不应该渲染的时候渲染,而在应该渲染的时候不渲染时会发生什么情况
  • 此外,我还不知道什么时候应该在从reducer返回数据时使用Immutable.JS(它的语法非常令人不安)。为什么我们不能简单地返回简单的纯JavaScript对象?请用外行术语举例说明
  • 在文档中,我还读到,我们应该避免在
    mapStateToProps
    中使用
    .toJS()
    ,那么如果我们不应该在
    mapStateToProps
    中使用
    .toJS()
    ,我们应该如何访问从组件中的reducer返回的状态

  • Redux
    ,以及
    immutable.js
    是一种复杂的体系结构。您打算用
    Redux
    解决什么样的问题?如果你已经下定决心使用状态管理工具,并打算深入研究

    不变性主要是关于作为纯函数实现约简的需求。在这里,
    immutable.js
    可以帮助“重新计算”对整个状态的引用,而不管它的哪个部分被更改。但它是一堆不变的数据结构。要将它们提供给虚拟DOM,必须将它们
    转换为js
    。您准备好为这种运行时“检查”付费了吗?它会带来额外的复杂性和可能的性能问题

    也许最好将ESLint配置为在代码中的任何地方都进行编译时不变性检查。我指的是像这样的地方:

    const state = { foo: { bar: { baz: 'plugh' } } };
    state.foo.bar.baz = 'Do not do that cause React do not track such changes at all)';
    
    与Redux相比,它可能更适合您。它的功能更少,更具结构性/古典性