我正在面对这样的反应组件
export default class MyComponent extends React.Component {
render() {
const { var } = this.props
const newVar = processVar(var)
return(newVar)
}
}
我知道收到的这个道具永远不会改变。如果我这样做就麻烦了,还是应该在componentDidMount中处理它,然后将其设置为组件的状态?如果我没有从道具中收到这个变量,而是从我的商店中收到(我正在使用mobx),我应该使用计算来达到这个目的吗?)
问题更像是最优化的方法(我应该在componentDidMount中处理它还是让它在渲染器中)还是可能的增益太小而我应该忽略它?
答案 0 :(得分:1)
使用解构时,在对象/字符串/等上有一个指针。因此,您不必在每次进行销毁时都创建新的引用,因此不会触发比较测试。 此主要方法没有性能问题,甚至建议提高代码清晰度。
/修改/ 抱歉,我误解了您的问题,您的函数Process()确实会返回带有新引用的对象,但是这与您使用的组件无关紧要,因此rerendre方法将在更改道具或状态时触发。
出于可读性考虑,我从未使用过mobx,但是如果您使用HOC来获取道具,则还可以直接在HOC中发送Process(var)