Rozdiely medzi požiadavkou na dovoz

Moduly sú kľúčovou konštrukciou, ktorá ovláda jazyk JavaScript. V tomto článku Vyžadovať a importovať sa budeme zaoberať modulom JavaScript: vyžadovať a importovať.

Tieto moduly umožňujú písať opakovane použiteľný kód. Pomocou Správcu balíkov uzlov (NPM) zverejníte svoj modul v komunite. NPM vám tiež umožňuje využívať moduly vytvorené alternatívnymi vývojármi.

V JavaScripte vyberiete 2 modulové systémy:

Importovanie modulov vyžaduje použitie a komercializácia pomocou modulu. Vývoz a vývoz. foo

Import modulov pomocou importu ES6 a komercializácia pomocou exportu ES6.

Existujú nejaké hrany výkonu pri používaní jedného nad druhým? Existuje zvyšok, ktorý musíme vždy uznať, ak máme tendenciu používať moduly ES6 nad modulmi Node? Pokúsme sa vyriešiť tento problém.

Čo je to Vyžadovať?

Vyžaduje sa, aby spotrebovávali moduly. Umožňuje vám začleniť moduly do vašich programov. Objavíte vnútorne základné moduly Node.js, komunitné moduly (moduly node) a natívne moduly.

Povedzme, že chceme skenovať súbor zo systému súborov. Uzol obsahuje hlavný modul označovaný ako „fs“:

const fs = vyžadovať ('fs');

fs.readFile ('./ file.txt', 'utf-8', (err, data) => (

if (err) (throw err; )

console.log ('data:', data);

));

Ako uvidíte, máme tendenciu importovať modul „fs“ do nášho programu. Umožňuje nám ľubovoľnú funkciu, ktorá je k nej pripojená, napríklad „readFile“.

Vyžadovať môžete vyhľadávať súbory v nasledujúcom poradí:

Vstavané základné moduly Node.js (ako fs)

Moduly v priečinku node_modules.

Ak názov modulu obsahuje ./, / alebo ../, bude hľadať adresár v rámci danej cesty. Zodpovedá príponám: * .js, * .json a * .node.

Vyžadovať vlastnosti:

  • Dynamické načítanie budete mať všade, kde nie je preddefinovaný / statický názov načítaného modulu alebo všade, kde modul úplne nenahrávate, pokiaľ je to skutočne potrebné (v závislosti od viazaného toku kódu).
  • Načítanie je synchrónne. To znamená, že ak máte viacnásobné požiadavky, načítajú sa a spracovávajú jeden po druhom.
  • Dynamické načítanie budete mať všade, kde nie je preddefinovaný / statický názov načítaného modulu alebo všade, kde modul úplne nenahrávate, pokiaľ je to skutočne potrebné (v závislosti od viazaného toku kódu).
  • Načítanie je synchrónne. To znamená, že ak máte viacnásobné požiadavky, načítajú sa a spracovávajú jeden po druhom.
  • Táto požiadavka sa väčšinou nezaoberá väčšinou. Je veľmi nepravdepodobné, že sa v súčasnosti stane zvykom, že moduly ES6 existujú.

Skutočné načítanie každého modulu pomocou príkazu () sa uskutoční v piatich krokoch.

Rozhodnutie

Načítava

Obal

ohodnotenie

caching

Rozlíšenie prvého kroku je uzavretý krok, kdekoľvek node.js počíta metódy súboru atď. V rámci druhého načítavania, uzol vytiahne kód v rámci aktuálnej metódy. Pri zabalení do zalomenia kódu v rámci operácie, ako je zobrazené vyššie, vyšle ho VM na vyhodnotenie, takže ho nakoniec uloží do vyrovnávacej pamäte.

Primárne si teda uzol nikdy neuvedomuje, aké symboly modul commonJS ide do exportu a pokiaľ nie je modul skutočne vyhodnotený. A to je často najväčší rozdiel s modulmi ECMAScript, pretože výsledok ESM je lexikálny, a preto sú exportované symboly lepšie známe predtým, ako sa kód skutočne vyhodnotí.

Čo je import?

Existuje aj návrh na import (), ktorý slúži na vytvorenie vnorených dovozných príkazov. Na rozdiel od lexikálneho kľúčového slova importu sa operácia import () spracuje v tom čase alebo analýza (skôr sa vyžaduje). Syntax je rovnaká ako nasledujúca.

import („foo“)., potom ((modul) =>) .catch ((err) =>);

Keď sa analyzuje pridružený modul ESM, potom sa predtým, ako ho vyhodnotí VM, vytvorí uzavretá štruktúra označovaná ako záznam modulu. Výsledkom je, že akákoľvek chyba týkajúca sa nepohodlia niekoľkých exportovaných obrázkov môže pred analýzou spôsobiť chybu.

Prípady použitia

  • Zaťaženie modulu na požiadanie je možné.
  • Je možné vykonať podmienené zaťaženie modulov
  • Sľub ako asynchrónne zaobchádzanie.

Importovať funkcie:

  • Pomenované importy budete používať pri výbere načítania iba položiek, ktoré chcete. Čo ušetrí pamäť?
  • Import je asynchrónny (av súčasnom module ES6 Loader to samozrejme je) a môže vykonať dotyk vyššie.
  • Pomenované importy budete používať pri výbere načítania iba položiek, ktoré chcete. Čo ušetrí pamäť?
  • Import je asynchrónny (av súčasnom module ES6 Loader to samozrejme je) a môže vykonať dotyk vyššie.
  • Zdá sa, že import nie je možné získať v uzle z dôvodu verzie 6.
  • Bude však k dispozícii v budúcich verziách. Budete ich používať v týchto dňoch pomocou transpilátorov podobných kompilátorom Traceur, Babel alebo Rollup.

Porovnanie medzi hlavami B medzi požiadavkami a dovozom (infografika)

Nižšie sú uvedené 4 najväčšie rozdiely medzi požadovať a importovať

Kľúčové rozdiely medzi požadovaním a importom

Vyžadovať vs dovoz sú populárne voľby na trhu; diskutujme o niektorých hlavných rozdieloch medzi požiadavkou na dovoz a dovozom:

  • Vyžaduje sa viac dynamickej analýzy a import viac statickej analýzy
  • Vyžadovať chybu Throw za behu a Import vyvolá chybu pri analýze
  • Vyžadovať je nenulové a dovozné je Lexické
  • Vyžaduje sa, aby zostali tam, kde umiestnili súbor a import sa zoradí na začiatok súboru.
  • Import sa vždy spúšťa na úplnom začiatku súboru a nedá sa spustiť podmienečne. Na druhej strane, požiadavka môže byť použitá inline, podmienečne,

Vyžadovať vs Tabuľka porovnania dovozu

Ako vidíte, existuje veľa porovnávaní medzi požadovaním a importom. Poďme sa pozrieť na horné porovnanie medzi Vyžadovať vs Importovať nižšie

S. č.vyžadovaťimport
1Syntax:

var dep = vyžadovať („dep“);

console.log (dep.bar);

dep.foo ();

Syntax:

importovať (foo, bar) z "dep";

console.log (bar);

foo ();

2Keďže import zostáva v tretej etape a prehliadače ich nevynucujú natívne, nemôžeme spustiť žiadny výkon.V súčasnosti, keď použijete import vo svojom kóde, vaše transpilátory ho znova vyžadujú, modelingový systém commonJS. Preto je v súčasnosti každý rovnaký.
3Aj keď v súčasnosti nejestvuje žiadny zisk z výkonnosti, stále budem radiť, aby ste použili import nad požiadavkou, pretože to bude v JS natívne a bude (rovnako ako jeho pôvodný) vykonávať vyššiu výkonnosť, ako vyžaduje.V dôsledku importu je natívny, preto nevyžadujú vyššiu výkonnosť v porovnaní s importom
4Dynamické načítanie budete mať všade, kde nie je preddefinovaný názov načítaného modulu. Načítanie je synchrónne. To znamená, že ak máte viacnásobné požiadavky, načítajú sa a spracovávajú jeden po druhom. ES6Pomenované importy môžete použiť výberom načítať iba položky, ktoré chcete. Čo ušetrí pamäť? Import je asynchrónny (av súčasnom module ES6 Loader to samozrejme je) a môže vykonať dotyk vyššie. Modul vyžadovania modulov sa väčšinou väčšinou nezakladá. Je veľmi nepravdepodobné, že sa v súčasnosti stane zvykom, že moduly ES6 existujú.

Záver - Vyžadovať verzus import

Dozvedeli sme sa, ako vyrobiť moduly Node.js a použiť ich v našom kóde. Moduly nám umožňujú jednoducho využívať kód. Poskytujú praktickosť, ktorá je izolovaná od alternatívnych modulov. Správa kódu je menej komplikovaná, len čo je v malých kúskoch. Toto je často myšlienka udržať funkcie iba pre jednu úlohu alebo mať súbory obsahujúce iba časť alebo jednu časť naraz. Ak máte skvelú aplikáciu a mali by ste sa pohybovať v mnohých alebo tisíckach riadkov kódu, úloha ladenia alebo jednoduchého porozumenia tejto aplikácie sa stáva tým ťažšou.

Našťastie nám to JavaScript pomáha tým, že má príkaz Import verzus Vyžadovať. Kód však napíšete do jedného súboru a zdieľate ho, preto ho môže použiť iný súbor alebo súbory. Dúfam, že teraz musíte mať spravodlivejšiu predstavu o dovoze aj požiadavke. Zostaňte naladení na náš blog a získajte ďalšie podobné články.

Odporúčaný článok

Bol to návod na najväčšie rozdiely medzi požiadavkou na dovoz a dovozom. Ďalej diskutujeme o kľúčových rozdieloch Vyžadovať vs Importovať s infografikou a tabuľkou porovnania. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Node.js verzus výkon PHP
  2. Raspberry Pi 3 vs Arduino
  3. C # Array vs List
  4. C ++ vs Cieľ C
  5. C ++ Vector vs Array: Čo uprednostniť
  6. C ++ vs Visual C ++: Ktorý je najlepší

Kategórie: