Angularjs React的性能问题
我读到关于反应非常快的报道。最近,我写了一个应用程序来测试对角度的反应。不幸的是,我发现react的执行速度比angular慢。 下面是react的源代码。我是个新来的人。我确信我的react代码有问题。我发现它异常缓慢。 看看是否有专家能找到瓶颈Angularjs React的性能问题,angularjs,reactjs,Angularjs,Reactjs,我读到关于反应非常快的报道。最近,我写了一个应用程序来测试对角度的反应。不幸的是,我发现react的执行速度比angular慢。 下面是react的源代码。我是个新来的人。我确信我的react代码有问题。我发现它异常缓慢。 看看是否有专家能找到瓶颈 更新1: 删除了上下文的用法 更好地使用setState 更好地使用shouldComponentUpdate 我仍然无法使它比角度更快,甚至更接近角度。 更新2: 我犯了一个大错误,在单元组件中创建了二维数组。所以我把他们搬到了一个混音室
更新1:
更新2: 我犯了一个大错误,在单元组件中创建了二维数组。所以我把他们搬到了一个混音室。现在我相信react在DOM操作中比angular更快。
更新3:
我又犯错误了。我做错了,所以速度更快。经过分析,它的渲染不正确。如果有人能帮我理解,如果这能更快。我知道react不擅长处理大型阵列。在这个场景中,它将处理四个3d阵列 React的表现被夸大了。对于大多数实际用例来说,它足够快。呈现大型列表是它的主要缺点
此外,它总是返回true(除非更新由setState触发)。你需要比较一下道具
shouldComponentUpdate: function(nextProps, nextState) {
return this.props !== nextProps;
}
你应该在使用上下文的地方使用道具。React的性能被夸大了。对于大多数实际用例来说,它足够快。呈现大型列表是它的主要缺点
此外,它总是返回true(除非更新由setState触发)。你需要比较一下道具
shouldComponentUpdate: function(nextProps, nextState) {
return this.props !== nextProps;
}
您应该在使用上下文的地方使用道具。如果您不正确地使用上下文,文档说明: 特别是,在使用它“保存键入”和使用 它不是传递明确的道具 它最有利于传递上下文对象,比如当前登录的用户或redux存储。你的应用程序正在使用上下文,而它应该使用道具 您需要确保
shouldComponentUpdate
是一个有意义的谓词。看
如果你纠正这两件事,它将是一个更好的衡量反应的性能相比,角度。目前,你有一辆经过良好调整的法拉利与T型福特(用口香糖固定在一起)进行比赛 您使用的上下文不正确,文档说明: 特别是,在使用它“保存键入”和使用 它不是传递明确的道具 它最有利于传递上下文对象,比如当前登录的用户或redux存储。你的应用程序正在使用上下文,而它应该使用道具 您需要确保
shouldComponentUpdate
是一个有意义的谓词。看
如果你纠正这两件事,它将是一个更好的衡量反应的性能相比,角度。目前,你有一辆经过良好调整的法拉利与T型福特(用口香糖固定在一起)进行比赛 我认为这是一个非常做作的例子
- 如上所述,您不正确地使用了上下文
- 不需要mixin:列和行的数量可以而且应该作为道具传递
,create2DArray
应在脚本顶部声明为简单全局函数getRandomNumber
- 您设置的状态不正确。您不应该像这样更改状态
,您必须使用this.state.some='whatever'
this.setState({some:'whatever'})setState
- 如上所述,您不正确地使用了上下文
- 不需要mixin:列和行的数量可以而且应该作为道具传递
,create2DArray
应在脚本顶部声明为简单全局函数getRandomNumber
- 您设置的状态不正确。您不应该像这样更改状态
,您必须使用this.state.some='whatever'
this.setState({some:'whatever'})setState
- 我认为这是一个非常做作的例子