javascript - 在组件主体外部声明一个函数有什么区别吗?
问题描述
考虑以下示例:
const foo = string => "bar" + string;
class Example extends React.Component {
foo = string => "bar" + string
render = () => <p>
{foo("asd"); this.foo("asd")}
</p>
}
我唯一想到的是组件主体中的函数可以访问它的属性,例如道具、状态以及主体内部的任何内容,包括函数,但我们也可以将它们作为外部函数的参数传递。那么这是唯一的“优点或缺点”,还是有更先进的东西?
解决方案
在 React Native 的情况下,在类之外声明一个函数就像是创建一个静态函数。如果您将函数放在类中,它将为类的每个实例创建,在这种情况下这是不必要的。
在您的示例中,我会考虑 foo() 是否应该只在该文件或其他文件中使用。在后者的情况下,创建一个名为 utils/ 的单独文件夹,将函数放入其中并将其导入您需要的地方。
对于 props,您可以在类之外创建函数并使用 call() 调用它,然后就可以访问 props:
foo.call(this);
const foo = () => console.log(this.props);
推荐阅读
- .net-core - IBM MQ 和 .NET Core 应用程序
- javascript - 在 `it` 语句中循环通过 Protractor 的代码
- spring - 当我从 Spring 1.5.21 升级到 2.1.5 时,pom.xml 中出现“未知”错误
- unity3d - Unity:如何通过拖动触摸来旋转第一人称相机?
- spring - 使用 Freemarker 比较 String 和 Spring Security 标签
- java - Java DBUnit AmbiguousTableNameException 错误抛出
- lambda - 是否可以定义存储与参数具有相同数据类型的 lambda 函数的数据类型?
- html - noob div 标签问题 - 自动调整大小和定位
- json - 枚举列表作为 json 模式中的对象属性
- matlab - 理解优化问题并在 Matlab 中求解(选择合适的求解器)