【发布时间】:2018-04-16 09:45:09
【问题描述】:
写作之间是否存在性能差异(如果有)
const color = props.color;
对
const { color } = props;
另外,如果我们在参数签名中解构,我们会获得或失去任何性能吗?见例子3
我认为在这种情况下 example3 是编写函数的最佳方式?
示例功能性反应组件:
const example1 = (props) => {
const color = props.color;
// I know I could also just write style={{ color: props.color }}
// but for arguments sake lets say I want to write it like this.
return <h1 style={{ color }}>Hello</h1>;
};
const example2 = (props) => {
const { color } = props;
return <h1 style={{ color }}>Hello</h1>;
};
const example3 = ({ color }) => {
return <h1 style={{ color }}>Hello</h1>;
};
【问题讨论】:
-
请记住,您使用的是 JSX,因此您的代码在运行之前会被转译,很可能所有这三个代码都会产生非常相似/相同的代码。
-
最好在大多数时间谷歌
js perf {feature}来获得答案...见jsperf.com/destructuring/5 -
一般答案是:“这取决于,可能更快或更慢或相同。但它极不太可能对现实世界产生影响;不用担心直到/除非您发现问题并发现它与 X 有关。” (其中 X 是您过早担心的事情)。
-
这类问题的答案总是一样的。在您现在关心的任何 Javascript 环境中测试自己。然后,不要假设测试结果适用于现在或一年后的任何其他 Javascript 环境。这些东西在每个环境中通常都是不同的,并且会随着时间而变化。如果您正在对特定环境中的性能声明进行微优化,则必须开发自己的测试以查看最适合您的方法。而且,在您花时间这样做之前,您应该向自己证明差异确实很重要。
-
这是您应该优化可读性而不是过早地对速度进行微优化的事情之一。
标签: javascript reactjs ecmascript-6 destructuring