javascript - React 无状态组件——如何组织内部函数?

标签 javascript function reactjs

是否有任何理由更喜欢这些方法中的一种来编写无状态组件?

  1. 带有内部函数声明的函数声明

export default function MyComponent(props) {
  
  function myHelper() {
    return "something";
  }
  
  return (
    <p>
      {myHelper()}
    </p>
  );
       
}

  1. 带有内部函数表达式的函数声明:

export default function MyComponent(props) {

  const myHelper = () => {
    return "something";
  };

  return (
    <p>{myHelper()}</p>
  );
        
}

  1. 带有外部函数声明的函数声明:

function myHelper() {
  return "something";
}

export default function MyComponent(props) {

  return (
    <p>
      {myHelper()}
    </p>
  );
           
}

我不喜欢使用函数表达式作为主要组件函数,所以我跳过了这些可能性。

其中一种方法是否存在任何性能问题?或者有任何其他理由在其他之上使用一个?

方法 3. 更容易测试,因为我可以将助手编写为纯函数,将它们导出并导入到测试文件中。但这是我能找到的唯一论据。

最佳答案

我认为方法 3 是最好的,因为在每次渲染调用时,助手只会创建一次并执行多次。 而在其他情况下,每次渲染组件时都会创建助手,从而导致可能的性能问题。

支持方法 3 的另一点是您提到的可测试性。

关于javascript - React 无状态组件——如何组织内部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38620033/

相关文章:

javascript - 如何使用 React 单击文档中的任意位置关闭侧面板?

javascript - Apache 反向代理到 Node - 连接被拒绝 : AH00957

javascript - 使用正则表达式的 JavaScript 中的有效电子邮件地址

python - 初始化类定义的可选变量,其默认值与实例变量相同

algorithm - Go 程序不显示分配给变量的 Sliced Int 的期望结果

postgresql - 记录 "new"尚未分配

javascript - 当引用改变时如何重新渲染

javascript - 使用jquery从YouTube提要xml抓取视频ID

javascript - 向下滚动时图像向上移动

reactjs - 如何在 react.js 的 Material UI 中更改 DialogTitle 和 DialogContent 中的字体颜色