【问题标题】:React stateless components - how to organize inner functions?React 无状态组件 - 如何组织内部功能?
【发布时间】:2016-07-27 17:55:05
【问题描述】:

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

  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. 更容易测试,因为我可以将助手编写为纯函数,将它们导出并导入到测试文件中。但我能找到的唯一论据。

【问题讨论】:

标签: javascript function reactjs


【解决方案1】:

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

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

【讨论】:

  • 另一方面,将函数编写为内部声明/表达式使它们成为私有的。作为私有函数,很明显它们不应该在其他地方访问。虽然我猜他们没有被出口的事实已经解决了这个问题。我不得不说这个问题似乎很自以为是。
猜你喜欢
  • 1970-01-01
  • 2016-04-17
  • 2020-12-10
  • 2017-01-21
  • 1970-01-01
  • 2020-02-25
  • 2020-03-07
  • 2018-03-24
  • 2017-11-29
相关资源
最近更新 更多