我想知道将箭头函数传递给渲染中的地图函数,并将引用传递给该箭头函数之间是否有任何性能差异,如下所示:
render {
const { users } = this.props;
//Arrow function passed to map, in render.
const userList=
users.map((user) =>
<User
name={ user.name }
/>);
return(
<div>
{userList}
</div>
);
}
VS
makeUser = (user) => <User name={ this.props.user.name } />
render {
const { users } = this.props;
//Passing the arrow function reference
const userList = users.map(this.makeUser);
return(
<div>
{userList}
</div>
);
}
不是第一个在内存中创建和分配空间的人,对于箭头函数,每次调用渲染时都会这样做吗?
由于
答案 0 :(得分:1)
将函数与render方法分离在实际上更好,并且提供了更好的函数方法。尽管您在思考初始方法所消耗的资源方面完全正确,但这有不同的方面。 初始方法在运行时创建,存储并映射为运行时编译器中的N参考,并进行了优化。我敢于承担V8。这是因为命名函数表达式而不是匿名函数。 我建议你保持代码功能,尽可能避免在渲染中创建任何函数,将抽象保留在最自然的位置。