首页 > 解决方案 > 在渲染函数中的反应组件类中优化 var 处理

问题描述

我正面临这样的情况,我的反应组件是这样完成的

export default class MyComponent extends React.Component {


 render() {
    const { var } = this.props
    const newVar = processVar(var)
    return(newVar)
    }
}

我知道收到的这个道具永远不会改变。如果我这样做是一个问题,还是应该在 componentDidMount 中处理它然后将它设置为组件的状态?如果我不是从道具接收到这个变量,而是从我的商店(我正在使用 mobx)接收到这个变量,我应该使用计算来实现这个吗?)

问题更像是什么是最优化的方法(我应该在 componentDidMount 中处理它还是让它在渲染中)或者可能的增益太小我应该忽略它?

标签: reactjsoptimization

解决方案


当您使用解构时,您在对象/字符串/等上有一个指针。因此,您不会在每次解构时都创建新的引用,因此不会触发比较测试。这种主要方法没有性能问题,甚至建议提高代码清晰度。

/ 编辑 / 对不起,我误解了你的问题,你的函数 Process() 确实返回了带有新引用的对象,但这并不重要,因为你使用的是组件,所以 rerendre 方法将在道具或状态的变化时触发。

为了您的可读性,我从未使用过 mobx,但如果您使用 HOC 来获取道具,您也可以直接在 HOC 中发送 Process(var)


推荐阅读