像这样将函数放入渲染中是一种不好的做法吗?
这些函数是否会在每次渲染时创建,从而导致性能下降?性能影响有多大?是否有一个链接可以衡量这一点,或者有可靠的消息来源说这很糟糕?
这是否会导致不必要的渲染?我听说这尤其不是一个好主意PureComponent
.
很难澄清这是否可以。
class MyComponent extends Component {
...
render() {
const myFunc1 = () => {};
const myFunc2 = () => {};
const myFunc3 = () => {};
const myFunc4 = doSomething(() => {});
return (
<div>hello world</div>
);
}
}
像这样将函数放入渲染中是一种不好的做法吗?
Yep
这些函数是否会在每次渲染时创建,从而导致性能下降?
Yes
性能影响有多大?
它可以从完全可以忽略不计(大多数简单组件)到绝对关键(如果您不断在复杂的应用程序上重新渲染整个树)。
是否有一个链接可以衡量这一点,或者有可靠的消息来源说这很糟糕?
See 蔡斯·德安达的回答 https://stackoverflow.com/a/44849061/1380332.
这是否会导致不必要的渲染?我听说这对于 PureComponent 来说尤其不是一个好主意。
事实上,由于该函数将在每次渲染时创建,因此如果将它们传递给 PureComponent,它会认为该函数已更改并会再次渲染。
很难澄清这是否可以。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)