首页  >  文章  >  web前端  >  为什么我更喜欢顶级符号的&#function&#声明(但不会再使用它们)

为什么我更喜欢顶级符号的&#function&#声明(但不会再使用它们)

Patricia Arquette
Patricia Arquette原创
2024-10-24 06:18:02966浏览

Why I Prefer

今天,我们决定在工作中只使用箭头函数。

我们有一个通用的 ESLint 配置,并且团队投票决定在所有项目中统一此规则。

老实说,我不喜欢这个特殊规则

个人而言...函数声明感觉更具表现力,至少对于顶级符号

some-screen-of-my-app.tsx

import {} ...

export function SomeScreen(props: Props) {
  const { myContext } = useMyContext()
  const [state, setState] = useState()

  const doSomething = () => { ... }
  const handleSomething = () => { ... }

  return <>...</>
 }

function SomeInternalComponent() { ... }

这就是我习惯编写组件的方式:声明一个函数感觉就像小说中的章节标题

function Chapter3(storySoFar: Props) {
   // where the Hero meets the Villain
}

但我确实理解团队的需求:根据模块的原始作者,我们可能会在第一级找到 const () =>; {} 或函数。

主要论点是“箭头函数更具可读性”(我不同意)

import {} ...

const SomeInternalComponent = () => { ... }

export const SomeScreen = (props: Props) => {
  const { myContext } = useMyContext()
  const [state, setState] = useState()

  const doSomething = () => { ... }
  const handleSomething = () => { ... }

  return <>...</>
 }

我试图找到一些技术优势来支持我的偏好...一些书呆子*pitimini* [一些小或微不足道的东西]移动了我的利益的平衡,但因为我们所有人都同意以下内容:

  • 没有类(只有函数)
  • 没有全局的东西(现代模块)
  • 没有这个

两者之间没有显着差异。

深入细节:

const foo = () =>; { ... }

  • 禁止吊装
  • 函数的名称源自变量的名称(“foo”)
  • 以后不能像 foo=... 一样被覆盖
  • 不创建原型对象 foo.prototype
  • 不能用作构造函数 new foo()
  • 没有参数
  • 该值由 声明函数的位置 定义

函数 foo() { ... }

  • 吊装
  • 函数名称是obv。
  • 可以像 foo = ... 一样被覆盖
  • 创建对象原型 foo.prototype
  • new 是允许的,例如: new foo() (它将链接原型)
  • 该值由如何调用函数
  • 定义

最终,我更喜欢顶级组件的卓越的清晰度功能,但多数人的意志占上风。
开玩笑,我会适应的。拥有统一的风格将有助于维护有凝聚力的代码库。

???.


感谢您的阅读

以上是为什么我更喜欢顶级符号的&#function&#声明(但不会再使用它们)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn