箭头在渲染中的地图内部运行。应对

时间:2017-07-10 00:20:32

标签: javascript performance reactjs render arrow-functions

我想知道将箭头函数传递给渲染中的地图函数,并将引用传递给该箭头函数之间是否有任何性能差异,如下所示:

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>
    );
 }

不是第一个在内存中创建和分配空间的人,对于箭头函数,每次调用渲染时都会这样做吗?

由于

1 个答案:

答案 0 :(得分:1)

将函数与render方法分离在实际上更好,并且提供了更好的函数方法。尽管您在思考初始方法所消耗的资源方面完全正确,但这有不同的方面。 初始方法在运行时创建,存储并映射为运行时编译器中的N参考,并进行了优化。我敢于承担V8。这是因为命名函数表达式而不是匿名函数。 我建议你保持代码功能,尽可能避免在渲染中创建任何函数,将抽象保留在最自然的位置。