反应Js表现

时间:2016-10-26 07:28:50

标签: reactjs flux reactjs-flux fluxible

我正在使用react(V0.13.3),flux(V2.0.3)

我有一个包含许多内部组件的组件。

当内部组件更新时,浏览器即将关闭。我无法滚动点击,有时我会弹出一个说法:

  

你想停止反复无效的剧本。

我正在遵循所有React生命周期方法并实施shouldComponentUpdate方法。

我认为DOM Diffing占用了大量的CPU时间和分配给浏览器的RAM。

任何关于我为什么会遇到这个问题以及如何摆脱它的想法?

1 个答案:

答案 0 :(得分:0)

Reactjs很容易进入无休止的渲染周期。让我们假设您在componentDidUpdate中放置了一个从服务器中提取数据的方法,它会改变父组件使用的reducer。繁荣。组件树重新渲染。您的shouldComponentUpdate可能无用bc输入不是相同的引用。然后服务器再次受到攻击。无尽的循环。

解决方案是使用警卫。当你第一次点击componentDidUpdate(或你在后面的任何地方)方法时,改变reducer的方法应该在reducer上设置一种IsLoading变量。检查此变量以查看是否应再次触发变更请求。这可以防止不必要的重新渲染