javascript - React 功能组件的功能或粗箭头?
问题描述
我不禁想知道在 React 功能组件中使用普通函数和粗箭头之间是否有任何优势
const MyMainComponent = () => (
<main>
<h1>Welcome to my app</h1>
</main>
)
function MyMainComponent() {
return (
<main>
<h1>Welcome to my app</h1>
</main>
)
}
两者都可以正常工作,但是有推荐的方法来编写它们吗?有任何支持其中一个的论据吗?
编辑:我知道普通 javascript 函数(即上下文、堆栈跟踪、返回关键字等)的差异可能会影响您对函数的使用类型。但是,我纯粹是根据 React 组件来问这个问题。
解决方案
没有实际区别。
箭头允许跳过return
关键字,但不能从提升中受益。这导致 ES6 目标的详细输出更少,但转换为 ES5 时输出更详细,因为函数被分配给变量:
var MyMainComponent = function MyMainComponent() {
return React.createElement(
"main",
null,
React.createElement("h1", null, "Welcome to my app")
);
};
压缩后的非 gzip JS 文件的开销为 6 个字节,这个考虑通常可以忽略。
由于优化,导出箭头时不一定会出现详细程度:
var MyMainComponent = (exports.MyMainComponent = function MyMainComponent() {
return React.createElement(
"main",
null,
React.createElement("h1", null, "Welcome to my app")
);
});
推荐阅读
- c# - 更快地在 linq 中记录 n 条记录
- java - Android Studio 合并调试资源中的错误
- vba - 需要类型不匹配错误的解决方案
- java - TableCellRenderer 工作正常,表格排序正常,但不会重新绘制
- angular - 使用 Firestore 从 Angular 6 项目中的可观察数组中删除多个项目
- html - 警告是:页面的描述元标记中有非字母字符
- networking - 如果 ARP 没有找到关联的 IP 会发生什么
- python - 在 Python Tkinter 中保留输入字段
- typescript - 返回构造函数的工厂方法的类型
- python - 如何在python3中打印匹配字符串的下一行(如果我给 Tea ,它也应该打印下一行)