Rumah  >  Artikel  >  hujung hadapan web  >  Pembelajaran asas nod: Perkara yang anda perlu ketahui tentang bahagian hadapan [Ringkasan]

Pembelajaran asas nod: Perkara yang anda perlu ketahui tentang bahagian hadapan [Ringkasan]

青灯夜游
青灯夜游ke hadapan
2023-03-30 20:51:361938semak imbas

Artikel ini akan bercakap tentang titik pengetahuan asas nod, dan meringkaskan serta berkongsi beberapa pengetahuan nodej yang perlu diketahui oleh bahagian hadapan saya harap ia akan membantu semua orang.

Pembelajaran asas nod: Perkara yang anda perlu ketahui tentang bahagian hadapan [Ringkasan]

Sama ada pembangunan front-end atau back-end, saya secara peribadi berpendapat bahawa anda tidak seharusnya terhad kepada bidang anda sendiri Hanya dengan menembusi zon selesa sahaja anda meningkatkan. Walaupun ia boleh membuat sempurna, tetapi Kita juga perlu tahu bahawa pembelajaran tanpa berfikir akan membawa kepada kekeliruan, jadi ia adalah perlu untuk memahami pengetahuan bahagian pelayan yang paling berkait rapat dengan kemunculan nodejs boleh dikatakan memberi pembangun bahagian hadapan cara yang lebih pantas untuk memahami bahagian belakang. Berikut adalah beberapa pengalaman saya dalam mempelajari nodej dari perspektif front-end.

Ciri asas

Untuk memahami nodej dengan cepat, anda boleh melihat aspek berikut: konsep modul nod (ECMAScript2015 telah menyokong bahagian hadapan dan mudah difahami) , enjin V8 ( Sama seperti penyemak imbas), operasi tak segerak (berdasarkan v8 dan berbeza sedikit daripada pemprosesan penyemak imbas), dipacu peristiwa (berdasarkan v8 dan sedikit berbeza daripada penyemak imbas), API asas nod. [Cadangan tutorial berkaitan: tutorial video nodejs, pengajaran pengaturcaraan]

Modul

nodejs Modul boleh dibahagikan secara kasar kepada tiga jenis: modul teras, modul pihak ketiga dan modul tersuai. Setiap modul mempunyai keutamaan pemuatan yang berbeza.

  • Modul teras: modul terbina dalam nodejs, yang boleh difahami sebagai API asas nodejs, seperti laluan os fs kami yang biasa digunakan, dsb. Modul ini juga merupakan asas untuk nodej kami berinteraksi dengan pelayan.
  • Modul pihak ketiga: pakej npm dipasang oleh platform alat pengurusan pakej nodejs.
  • Modul tersuai: Ini biasanya merujuk kepada modul fail kami sendiri yang ditentukan.

Pemuatan dan penyusunan modul

  • Laluan penghuraian fail: Semak sama ada cache wujud=》Semak sama ada ia adalah modul teras=》Semak sambungan= 》 Perlaksanaan penghuraian (mengikut nama akhiran yang berbeza)
//检查fs内存中的缓存是否存在如果不存在则加载fs模块
let fs = require("fs")
//检查fs内存中的缓存(无)=》检查是否核心模块=》检查扩展名
let demo = require("./demo")
  • Prinsip keutamaan cache: Daripada laluan penghuraian fail, kita dapat melihat bahawa nodejs akan menyemak dahulu sama ada cache dalam memori wujud , dan jika ia wujud, muatkan ia cache.
  • Kompilasi modul: Artikel ini tidak akan menerangkan proses ini Proses ini akan diterangkan secara terperinci dalam bab seterusnya.

Spesifikasi

Konsep pembangunan modul JavaScript pada asasnya adalah seperti berikut: pengenalan "skrip" => fungsi skop => fungsi laksana sendiri => Commonjs (AMD ). Modul dalam nodejs terutamanya menggunakan spesifikasi commonjs, seperti yang ditunjukkan di bawah.

  • Setiap fail ialah modul dan mempunyai skop tersendiri.
  • Pembolehubah, fungsi dan kelas yang ditakrifkan dalam setiap fail adalah peribadi dan tidak dapat dilihat oleh fail lain
  • Setiap modul boleh mendedahkan antara muka luaran melalui exports atau module.exports
  • Setiap modul memuatkan modul lain melalui require

Modul eksport yang biasa digunakan memerlukan eksport. eksport dalam nodej adalah berdasarkan Commonjs.

Operasi tak segerak

Operasi tak segerak mudah difahami untuk pembangunan bahagian hadapan Kami penuh dengan operasi tak segerak, fungsi panggil balik dan janji dalam JavaScript. setTimeout, ini semua adalah operasi yang berkaitan dengan tak segerak perbezaan tidak akan dibincangkan di sini. Berikut ialah penerangan ringkas tentang ciri tak segerak nod:

  • Asynchronous dilaksanakan melalui Event Loop, yang merangkumi konsep tugas makro dan tugas mikro
  • Nod dan JavaScript mempunyai beberapa perbezaan dalam pemprosesan tak segerak Perbezaan

Gambar gelung peristiwa yang terdapat di Internet: Pembelajaran asas nod: Perkara yang anda perlu ketahui tentang bahagian hadapan [Ringkasan]

Enjin V8

  • V8 ialah nama enjin JavaScript yang memacu Google Chrome. Ini adalah sesuatu yang mengambil JavaScript kami dan melaksanakannya semasa menyemak imbas menggunakan Chrome.
  • Dalam Nodejs, v8 digunakan Ia menyediakan pelbagai API yang boleh dipanggil, seperti membaca dan menulis fail, permintaan rangkaian, maklumat sistem, dsb. Sebaliknya, kerana CPU melaksanakan kod mesin, ia juga bertanggungjawab untuk mentafsir kod JavaScript ke dalam urutan arahan mesin untuk pelaksanaan bahagian kerja ini diselesaikan oleh V8引擎

Pembelajaran asas nod: Perkara yang anda perlu ketahui tentang bahagian hadapan [Ringkasan] Teras nodejs ialah V8, yang digunakan untuk menyusun JavaScript ke dalam bahasa yang boleh dikenali oleh mesin

Didorong peristiwa

Event-driven sebenarnya adalah perisian Corak seni bina yang biasa digunakan dalam seni bina, secara ringkasnya, adalah untuk mencipta (mendaftar) acara dan mendengar acara itu, dan memprosesnya mengikut status acara. Kebanyakan API teras dalam nodej dibina di sekeliling seni bina dipacu peristiwa tak segerak idiomatik Selain itu, peristiwa modul teras dalam nod boleh digunakan untuk mencipta acara tersuai.

API Biasa

  • fs: biasa digunakan untuk melihat fail, menyunting, mencipta dan operasi lain
  • http: kunci ke modul rangkaian
  • soket: komunikasi rangkaian soket
  • acara: modul acara

Senario aplikasi

  • Perkhidmatan latar belakang
  • Pemprosesan skrip

Pelayan

Dalam beberapa tahun pertama apabila nodej muncul, terdapat soalan tentang sama ada hendak menggunakan nodejs Dalam persekitaran pengeluaran, kebanyakan pembangun tidak optimistik mengenainya. Walau bagaimanapun, selepas berlatih dalam beberapa tahun kebelakangan ini, aplikasi satu-benang nodejs dalam mengendalikan senario konkurensi tinggi telah diuji dengan baik. Pada masa ini terdapat banyak perkhidmatan berasaskan nodejs dalam produk dalam talian. Selain itu, nodejs juga mempunyai banyak rangka kerja sisi pelayan yang stabil serupa dengan spring java Berikut adalah beberapa rangka kerja yang biasa digunakan

  • Koa: model pembangunan berdasarkan model bawang
  • Ekspres: dengan. penghalaan sebagai rangka kerja nodejs bahagian pelayan teras
  • Fastify: Rangka kerja yang menggunakan sumber yang sangat sedikit dan sangat pantas pada masa ini.

Nota: Terdapat banyak rangka kerja untuk jenis perniagaan yang berbeza Jika anda berminat, anda boleh mempelajarinya

Alat<.>

Apabila kami menggunakan vue atau baldi keluarga bertindak balas untuk pembangunan, pernahkah anda terfikir mengapa satu baris arahan boleh menjalankan perkhidmatan bahagian hadapan? Mengapa satu baris perintah boleh menyusun bahagian hadapan? Mengapa kod Vue kami akhirnya mengeluarkan sekumpulan js Apabila kami mengkaji kod sumber fungsi ini, kami akan mendapati bahawa hampir semua keupayaan ini dibangunkan berdasarkan nodej. Berikut menyenaraikan penggunaan nodej kami dalam alat harian.

    Perkhidmatan tempatan: Pemalam perkhidmatan tempatan yang didayakan oleh webpack semuanya dilaksanakan berdasarkan modul http nodejs
  • Kompilasi dan pembungkusan: fail .vue vue, jsx react atau biasanya Fail .ts yang digunakan Bagaimana akhirnya ia menjadi fail js?

Ringkasan

Saya bercakap secara ringkas tentang asas nodej dari perspektif bahagian hadapan Setiap perkara boleh dibincangkan secara berasingan tahu. Mempunyai pemahaman umum tentang nod untuk memudahkan pembelajaran seterusnya. Pada masa ini, saya telah menyelesaikan banyak projek menggunakan nodejs Selepas menggunakannya lebih banyak, saya boleh melihat beberapa perkembangan teknikal bahagian hadapan dari perspektif yang lebih luas.

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati:

tutorial nodejs!

Atas ialah kandungan terperinci Pembelajaran asas nod: Perkara yang anda perlu ketahui tentang bahagian hadapan [Ringkasan]. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam