反应本机类型的功能

时间:2020-06-26 01:51:37

标签: javascript reactjs react-native

我是React Native的新手,对如何分辨它是函数还是类感到非常困惑。据我了解,大写字母表示一个班级?

请让我知道以下各项及其区别:

  1. const location = props => (...) 
    
  2. const Location() => {}
    
  3. function EventDetailScreen(props)
    
  4. handleOnPressEvent = event => {...}
    
  5. handleOnPressEvent = (event) => {...}
    

所有这些真的使我感到困惑。我知道const是什么意思,但是#1的道具没有括号(例如= ( props ) =>

#2的大写字母为“ L” #3以function开头,然后以大写字母“ E”开头 #4和#5一个带括号,另一个不带括号。

预先感谢您:)

1 个答案:

答案 0 :(得分:0)

好的,这是一个快速的概述,但是您需要查看一些文档或教程以对所有内容进行更深入的说明。

无论是否使用大写字母,javascript(这是您为React Native编写的脚本语言)都不关心是否使用大写,小写,camelCase,PascalCase等。现在,它区分大小写,因此命名后,需要匹配大小写(例如, funcName 不引用 FuncName )。对于在什么情况下使用名称命名,有一些通用约定,但实际上并不是任何规则。请查看此内容以了解一些通用约定(https://github.com/airbnb/javascript/tree/master/react#naming)。

进入功能。首先,您要问函数与类,但是您只知道这些示例都不是类。 (我们将忽略类在js中只是花哨的函数,因为在这种情况下与它们无关)。

示例中包含的是两种功能的组合。您有function expressions(这是您的“正常”功能)和arrow functions

箭头函数是函数表达式的一种特殊的紧凑形式。它们非常紧凑,非常适合许多(但不是全部)事物。请查看resources like this one,以完全了解它们之间的差异。

最后,回答您的特定问题:

  1. 这是箭头功能。仅具有单个参数的Arrow函数不需要大括号。如果道具有零个或多个arg,则确实需要大括号。因此= () =>= props =>以及= (props) =>= (props, others) =>都可以工作,但是= => = props, others =>无效。
  2. 因此,在此示例中,L的情况并没有真正改变,只是一个约定问题。但是,这将是无效的,因为它没有箭头函数的function或第一个=。为了正确起见,它应该是const Location = () => {}function Location = () => {}(作为常规函数)或const Location = function locationFunction() {}(但在这种情况下,箭头函数可能不太冗长)。
  3. 这是一个正常的函数表达式。大写是惯例问题。
  4. 另一个箭头功能。没有括号,因为它只有一个参数,所以括号是可选的。
  5. 这是另一个箭头功能。此处包括了括号,但不是必须的,因为只有一个arg。

请注意,在这些示例中,在函数声明之后使用花括号来容纳函数的主体。这是正确的,但是如果箭头函数正在运行单个命令或立即在SAME行中返回某些内容作为声明,则箭头功能可以省略花括号。

例如:handleOnPressEvent = event => console.log(event)不需要花括号。或twoPlus = (num) => 2 + num;

相同
twoPlus= (num) => {
 return 2 + num;
}

希望可以将其清除一点。箭头函数和常规函数之间还有其他区别(函数和类之间还有更多区别),所以我建议您进一步研究它们。

欢呼

相关问题