Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 React:Immutable.js vs JSON.parse(JSON.stringify())_Javascript_Json_Reactjs_Immutable.js_Stringify - Fatal编程技术网

Javascript React:Immutable.js vs JSON.parse(JSON.stringify())

Javascript React:Immutable.js vs JSON.parse(JSON.stringify()),javascript,json,reactjs,immutable.js,stringify,Javascript,Json,Reactjs,Immutable.js,Stringify,目前我遇到了React'shouldComponentUpdate'方法的问题-我注意到我通过链接将参数传递给该函数。因此,我不能使用任何优化,因为我有nextProps和this.props作为同一个东西 我的问题是——我应该如何说服我的同事使用不可变的数据结构来传递,而不是仅仅使用JSON.parse(JSON.stringify)复制对象?是否有任何基准比较这种方法来解决问题?在Chrome中,stringify/parse似乎比其他方法更快,而Immutable.js速度最慢()。我对这

目前我遇到了
React'shouldComponentUpdate'
方法的问题-我注意到我通过链接将参数传递给该函数。因此,我不能使用任何优化,因为我有nextProps和this.props作为同一个东西


我的问题是——我应该如何说服我的同事使用不可变的数据结构来传递,而不是仅仅使用
JSON.parse(JSON.stringify)
复制对象?是否有任何基准比较这种方法来解决问题?

在Chrome中,stringify/parse似乎比其他方法更快,而Immutable.js速度最慢()。我对这个结果感到气馁,但我发现并最终明白,不可变肯定不是关于速度,而是关于健壮的API,再加上Redux,它真的很耀眼。 此外,我还应该强调Reddit讨论中的这一思想:

别忘了这是JavaScript,每个浏览器都有多个层 关于优化——这意味着今天的快或慢可能是 明天是慢还是快(在合理范围内)


嗯,对你的同事来说还不够有说服力?!!老实说,我希望有人会抱怨“复制太多”的不可变数据,但如果你的同事已经做了太多的
JSON.parse(JSON.stringify)
,那么他/她的抱怨是什么呢?@niceman你能不能在react docs中指出,解决这个问题的首选方法是使用扩展字符,Object.assign或JSON.parse(JSON.stringify())?这会很有帮助。这在官方教程中有:通过字符串化然后解析来复制对象是没有意义的;这肯定比深度复制要慢,尽管我还没有进行基准测试。为什么不在jsperf或类似的基础上进行基准测试呢?这个问题的答案取决于应用程序的具体情况,并且基本上是基于观点的。如果你的应用程序状态像10-20个布尔标志,那么扩展操作就完美了。另一方面,如果您在其中使用循环引用深度嵌套(比如像图形一样)结构,那么stringify/parse就会失败。