当前位置: 首页 > 知识库问答 >
问题:

在组件的主体之外声明一个函数有什么不同吗?

浦墨竹
2023-03-14

考虑以下示例:

const foo = string => "bar" + string;

class Example extends React.Component {
  foo = string => "bar" + string
  
  render = () => <p>
    {foo("asd"); this.foo("asd")}
  </p>
}

我唯一想到的是,组件体内的函数可以访问它的属性,如道具、状态和体内的任何东西,包括函数,但我们也可以将它们作为外部函数的参数传递。所以这是唯一的“优点或缺点”,还是有更先进的东西?

共有1个答案

韩嘉祯
2023-03-14

在React本机的情况下,在类之外声明函数类似于创建静态函数。如果将函数放在类中,则将为类的每个实例创建该函数,在本例中这将是不必要的。

在您的示例中,我将考虑foo()应该只在该文件中使用,还是在其他文件中使用。在后者的情况下,创建一个名为utils/的单独文件夹,将函数放在那里,并在需要的地方导入它。

当涉及到props时,您可以在类之外创建函数,并用call()调用它,然后就可以访问props:

 类似资料:
  • 本文向大家介绍react声明组件有哪几种方法,各有什么不同?相关面试题,主要包含被问及react声明组件有哪几种方法,各有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 1、无状态组件 2、有状态组件 3、高阶组件 4、容器组件 5、回调组件 具体请看这篇文章:https://juejin.im/post/5e041c99518825123e7b0602

  • 当我在java中在方法之外的单独行上声明和构造一个数组时,我感到困惑,因此它将是一个实例变量,我得到一个编译错误,然而当我在一行上构造和初始化时,它是好的,为什么会发生这种情况? }

  • 问题内容: 是否可以在Java的同一行中初始化和/或声明多个数组? 即。 工作,但 似乎不起作用(数组大小为4) 问题答案: 请记住 声明了5个整数,但只初始化了’e’。 同样地, 只会初始化e。 您需要类似 坦白说,这不值得一-而就…

  • 我有一个基本接口,并从中扩展了3个接口,和。在对进行了一些业务更改之后,现在与相同,但为了一致性,我不希望仅使用,而不是使用扩展接口。我试着这样做: 然后,ESLint警告我不要使用空接口。如果我不想禁用此规则,是否有方法将声明为与相同的接口?

  • 我习惯像这样声明数组内联: 为什么我不能对函数执行相同的操作?假设我有一个类,其中包含and 方法,这是有效的: 但是,这不是: 它不喜欢内联数组声明,编译器错误是“不能创建函数的泛型数组” 编辑 我认为我的问题不是建议的副本,因为我想使用数组初始值设定项语法静态定义一组函数

  • 问题内容: 在JDK 1.7中,存在一个声明。 他们为什么要制造新的而不使用: 问题答案: 因为通过返回的 后盾 给定的数组。它包装该数组;数组的更改反映在中,反之亦然。 另外,因此,返回的此处具有固定大小。因此,它不能是因为可以增长或收缩。