<分区>
这些函数在 React 教程中似乎可以互换使用,但无法弄清区别……或者何时使用哪个?
const SomeVal = () => {
...
}
const SomeVal = () => (
...
)
<分区>
这些函数在 React 教程中似乎可以互换使用,但无法弄清区别……或者何时使用哪个?
const SomeVal = () => {
...
}
const SomeVal = () => (
...
)
最佳答案
这些是根本不同的。以前的箭头函数语法,() => {}
, 允许你在箭头函数的主体中有多个语句,即:
() => {
console.log('Hello!');
return 'World!';
}
// When called, this logs Hello! and returns World!
但后者,() => ()
, 是一个箭头函数,隐式返回一个用括号括起来的表达式(称为分组运算符)。它没有明确允许多个语句:
() => (
'World' // only one expression that is implicitly returned
// Would work fine without parentheses (unless you want to return an object!)
)
// When called, this function returns 'World'
当然,您也可以创建一个不可读的箭头函数,使用逗号运算符执行多个操作:
() => (console.log('Hello!'), 'World!')
我假设您在 React 无状态组件中看到了这一点:
const Comp = () => (
<div>Hello World!</div>
);
此函数(组件只是函数)返回 <div>
隐式元素。但是,使用 {}
,你可以做一些中间计算而不是马上返回:
const Comp = () => {
const msg = 'Hello World!';
return ( // Need to explicitly return here
<div>{msg}</div>
);
}
关于javascript - javascript 函数中的 () 和 {} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51773502/
相关文章:
javascript - 使用 .toDataUrl() 将 Chart.js Canvas 图表转换为图像会导致空白图像
javascript - 如何在 ionic 4 中使用 alertcontroller 返回 promise ?
javascript - 调试代码我认为这将是这个函数 onSelect
Javascript require 与 require .default
javascript - mobx 可观察日期字段不会自动重新渲染
javascript - 如何在 Javascript React Native 中映射 firebase 结果
javascript - 如何使用 PHP 更新 JSON 文件中的值
javascript - 如何在 jQuery 中匹配 URL 和 href?
javascript - 如何使用react-testing-library测试material ui MenuList组件上的按键事件
java.io.IOException : Can't write react-native run-android failed