reactjs - 在渲染函数中的反应组件类中优化 var 处理
问题描述
我正面临这样的情况,我的反应组件是这样完成的
export default class MyComponent extends React.Component {
render() {
const { var } = this.props
const newVar = processVar(var)
return(newVar)
}
}
我知道收到的这个道具永远不会改变。如果我这样做是一个问题,还是应该在 componentDidMount 中处理它然后将它设置为组件的状态?如果我不是从道具接收到这个变量,而是从我的商店(我正在使用 mobx)接收到这个变量,我应该使用计算来实现这个吗?)
问题更像是什么是最优化的方法(我应该在 componentDidMount 中处理它还是让它在渲染中)或者可能的增益太小我应该忽略它?
解决方案
当您使用解构时,您在对象/字符串/等上有一个指针。因此,您不会在每次解构时都创建新的引用,因此不会触发比较测试。这种主要方法没有性能问题,甚至建议提高代码清晰度。
/ 编辑 / 对不起,我误解了你的问题,你的函数 Process() 确实返回了带有新引用的对象,但这并不重要,因为你使用的是组件,所以 rerendre 方法将在道具或状态的变化时触发。
为了您的可读性,我从未使用过 mobx,但如果您使用 HOC 来获取道具,您也可以直接在 HOC 中发送 Process(var)
推荐阅读
- json - jq:替换特定条目上的字符串
- firebase-realtime-database - Firebase 实时数据库 - 使用基于查询的规则检索特定数据
- javascript - 单击时向元素添加 CSS 类,出现错误?
- react-native - react-native-webview:如何为加载的网站设置初始比例
- android - Ionic FilePath 不起作用,如何获取 Android 11 的文件路径
- javascript - 试图找到一种方法来为 Discord 机器人获取今天版本的 PogChamp 表情
- c# - 使用 DisplayMemberBinding 在 XAML gridview 中设置不同的属性
- ubuntu - tesseract 4 为什么我的训练数据没有编译
- javascript - 有没有办法在不使用道具的情况下更新反应组件?
- spring-boot - 当您已经有一个应用程序端池时,您还需要 AWS RDS 代理吗?