Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Saya Lebih Memilih Pengisytiharan &#Fungsi' untuk Simbol Peringkat Atas (Tetapi Tidak Akan Menggunakannya Lagi)

Mengapa Saya Lebih Memilih Pengisytiharan &#Fungsi' untuk Simbol Peringkat Atas (Tetapi Tidak Akan Menggunakannya Lagi)

Patricia Arquette
Patricia Arquetteasal
2024-10-24 06:18:02966semak imbas

Why I Prefer

Hari ini, kami telah memutuskan untuk menggunakan fungsi anak panah secara eksklusif di tempat kerja.

Kami mempunyai konfigurasi ESLint yang sama, dan pasukan mengundi untuk menyatukan peraturan ini merentas semua projek.

Dan sejujurnya saya bukan peminat peraturan khusus ini

Secara peribadi... pengisytiharan fungsi terasa lebih ekspresif, sekurang-kurangnya untuk simbol peringkat atasan:

beberapa skrin-apl-saya.tsx

import {} ...

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

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

  return <>...</>
 }

function SomeInternalComponent() { ... }

Beginilah saya biasa menulis komponen: mengisytiharkan fungsi terasa seperti tajuk bab dalam novel.

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

Tetapi saya faham keperluan pasukan: bergantung pada pengarang asal modul yang mungkin kita temui pada tahap pertama const () => {} atau fungsi.

Hujah utama ialah "fungsi anak panah lebih mudah dibaca" (yang saya tidak bersetuju)

import {} ...

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

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

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

  return <>...</>
 }

Saya cuba mencari beberapa kelebihan teknikal untuk menyokong pilihan saya... beberapa nerd *pitimini* [ sesuatu yang kecil atau tidak penting ] yang menggerakkan baki pada faedah saya tetapi kerana kita semua bersetuju tentang perkara berikut:

  • Tiada Kelas (hanya berfungsi)
  • Tiada barangan global (modul moden)
  • Bukan ini

Tiada perbezaan yang ketara antara setiap satu.

Menyelam ke dalam Butiran:

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

  • Tiada angkat
  • nama fungsi berasal daripada nama pembolehubah ("foo")
  • Tidak boleh ditimpa nanti seperti foo=...
  • Tidak mencipta objek prototaip foo.prototype
  • Tidak boleh digunakan sebagai pembina new foo()
  • Tidak mempunyai hujah
  • nilai ini ditakrifkan oleh di mana fungsi diisytiharkan

fungsi foo() { ... }

  • Mengangkat
  • nama fungsi ialah obv.
  • Boleh ditimpa seperti foo = ...
  • Mencipta objek prototaip foo.prototype
  • new dibenarkan seperti: new foo() (yang akan memautkan prototaip)
  • nilai ini ditakrifkan oleh bagaimana fungsi dipanggil

Akhirnya, saya lebih suka fungsi Kejelasan Unggul untuk komponen peringkat atas, tetapi kehendak banyak yang mengatasinya.
Bergurau, saya akan menyesuaikan diri. Mempunyai gaya bersatu akan membantu mengekalkan asas kod yang padu.

???.


terima kasih kerana membaca

Atas ialah kandungan terperinci Mengapa Saya Lebih Memilih Pengisytiharan &#Fungsi' untuk Simbol Peringkat Atas (Tetapi Tidak Akan Menggunakannya Lagi). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn