Maison interface Web js tutoriel Explication détaillée des différences et des connexions entre l'exportation par défaut, l'exigence et l'exportation, et l'exportation

Explication détaillée des différences et des connexions entre l'exportation par défaut, l'exigence et l'exportation, et l'exportation

Jun 22, 2017 am 11:53 AM
default export

Êtes-vous toujours inquiet des différences et des connexions entre module.exports, exports, export et export default, import et require ? Cet article est fondamentalement suffisant !

1. Tout d'abord, abordons une question de base :

module.exports et exports appartiennent au CommonJS. spécification du module ! (Vous n'êtes pas sûr de commonjs ? Maître, veuillez jeter un œil aux spécifications de commonjs ici)

export et export default appartiennent à ES6 syntaxe (Vous n'êtes pas sûr de ES6 ? Maître, veuillez jeter un œil au module ES6 ici) !

De même, import et require appartiennent respectivement à ES6 et CommonJS !

2. Il y a un autre point clair pour savoir à quelle partie de la grammaire il appartient :

module. exports et exports, export et export par défaut sont tousModule d'exportation > et

exigent

sont importer des modules. Alors ne vous y trompez pas maintenant, module.exports export correspond à require import, et export export correspond à import import. Hé ! Attendez, pourquoi dit-on que module.exports export correspond à require import, et export export correspond à import import ? Ensuite, il y a exports et export default ! ? Alors continuons. 3. La différence et la connexion entre module.exports et exports

À ce stade, je dois mentionner la modularité : Les applications de nœuds sont composées de modules et adoptent la spécification de module CommonJS. Selon cette spécification, chaque fichier est un module et a sa propre portée. Les variables, fonctions et classes définies dans un fichier sont privées et ne sont pas visibles par les autres fichiers. La spécification CommonJS stipule qu'au sein de chaque module, la variable
représente le module actuel. Cette variable est un objet et son attribut
(c'est-à-dire
) est l'interface externe. Le chargement d'un module charge en fait l'attribut
du module.

Le code ci-dessus génère des variables

et des fonctions

à module. La méthode exportsmodule.exportsmodule.exports est utilisée pour charger les modules.

var x = 5;var addX = function (value) {  return value + x;};module.exports.x = x;module.exports.addX = addX;
Copier après la connexion

Après avoir lu l'introduction à la spécification commonjs tout à l'heure, vous pouvez connaître les différences et connexions suivantes :

En fait, la variable exports pointe vers le module .exports, et le chargement du module est en fait le module.exports qui charge le module. Cela équivaut à avoir une ligne comme celle-ci en tête de chaque module. xaddX

Nous pouvons donc ajouter des méthodes directement à l'objet exports pour représenter l'interface de sortie externe, tout comme l'ajouter à module.exports. Notez que vous ne pouvez pas pointer directement la variable exports vers une valeur, car cela équivaut à couper la connexion entre exports et module.exports.

require

3. La différence et la connexion entre les fonctions du module export

et

export par défaut
var example = require('./example.js');console.log(example.x); // 5console.log(example.addX(1)); // 6
Copier après la connexion

sont principalement composées de :

et module.exports.

Exportez l'interface externe du module, et la commande
var exports = module.exports;
Copier après la connexion
importe les interfaces exposées par d'autres modules.

L'exportation est en fait légèrement différente de l'exportation par défaut dans la façon dont elles sont écrites. L'une consiste à exporter des interfaces individuelles et l'autre consiste à exporter une interface entière par défaut. Lors de l'utilisation de la commande

, l'utilisateur doit connaître le nom de la variable ou de la fonction à charger, sinon elle ne pourra pas être chargée. Voici un moyen simple de l'écrire sans connaître les noms d'interface spécifiques exposés. Utilisez simplement la commande pour spécifier la sortie par défaut du module. export peut s'écrire comme ceci :

Après avoir utilisé la commande export pour définir l'interface externe du module, d'autres fichiers JS peuvent charger ce module via le import构成 commande. exportimport

La valeur par défaut de l'exportation peut être écrite comme ceci

importexport default

Comparons la valeur par défaut de l'exportation et la sortie de l'exportation.

<code class=" javascript"><span class="token comment">// testA.js<span class="token keyword">var f <span class="token operator">= <span class="token string">&#39;Miel&#39;<span class="token punctuation">;<span class="token keyword">var name <span class="token operator">= <span class="token string">&#39;Jack&#39;<span class="token punctuation">;<span class="token keyword">var data<span class="token operator">= <span class="token number">1988<span class="token punctuation">;

export <span class="token punctuation">{f<span class="token punctuation">, name<span class="token punctuation">, data<span class="token punctuation">}<span class="token punctuation">;<br/></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
Copier après la connexion
Vous pouvez voir que le premier groupe est utilisé, l'instruction n'a pas besoin d'utiliser des accolades ; le deuxième groupe est utilisé, l'instruction correspondante doit utiliser des accolades, un module ne peut avoir qu'une seule sortie par défaut, donc il ne peut être utilisé qu’une seule fois.

exportimport</p>4. La différence et le lien entre importer et require<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;code class=&quot; javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// main.js import &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code class=&quot; javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token number&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;f&lt;span class=&quot;token punctuation&quot;&gt;, name&lt;span class=&quot;token punctuation&quot;&gt;, data&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code class=&quot; javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;} from &lt;span class=&quot;token string&quot;&gt;&amp;#39;./testA&amp;#39;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;</pre><div class="contentsignin">Copier après la connexion</div></div><p></p>

<code class=" javascript"><span class="token comment">// export-default.js
export default <span class="token keyword">function <span class="token punctuation">(<span class="token punctuation">) <span class="token punctuation">{
  console<span class="token punctuation">.<span class="token function">log<span class="token punctuation">(<span class="token string">&#39;foo&#39;<span class="token punctuation">)<span class="token punctuation">;<span class="token punctuation">}<br/></span></span></span></span></span></span></span></span></span></span></span></span></code>
Copier après la connexion
// 或者写成function foo() {
  console.log(&#39;foo&#39;);}
export default foo;
Copier après la connexion
C'est en fait clair après la lecture les éléments ci-dessus, import et require ne sont que deux syntaxes pour importer des modules appartenant respectivement à ES6 et CommonJS.
<code class=" javascript"><span class="token comment">// import-default.js
import customName from <span class="token string">&#39;./export-default&#39;<span class="token punctuation">;<span class="token function">customName<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">;<span class="token comment"> // &#39;foo&#39;<br/><br/></span></span></span></span></span></span></span></span></code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'erreur « Le module demandé ne fournit pas d'exportation nommée » apparaît dans Vue Cli - comment la résoudre ? L'erreur « Le module demandé ne fournit pas d'exportation nommée » apparaît dans Vue Cli - comment la résoudre ? Aug 20, 2023 pm 07:25 PM

'Le module demandé ne fournit pas d'exportation nommée' Une erreur apparaît dans VueCli – comment la résoudre ? Lors du développement du projet Vue, nous pouvons rencontrer le message d'erreur « Therequestedmoduledoesnotprovideanexportnamed ». Ce message d'erreur apparaît généralement lors de l'introduction de composants tiers

Comment configurer la passerelle par défaut Comment configurer la passerelle par défaut Dec 07, 2023 am 11:34 AM

Étapes pour configurer la passerelle par défaut : 1. Déterminez l'adresse IP du routeur ; 2. Ouvrez l'interface de configuration réseau de l'ordinateur ; 3. Configurez la connexion réseau. 5. Entrez l'adresse IP et le masque de sous-réseau ; . Configurez la passerelle par défaut ;7. Configurez le serveur DNS ; 8. Enregistrez les paramètres. Introduction détaillée : 1. Déterminez l'adresse IP du routeur. L'adresse de passerelle par défaut est généralement l'adresse IP du routeur. Vous pouvez trouver l'adresse IP du routeur à l'arrière du routeur ou dans le manuel d'utilisation. 2. Ouvrez la configuration réseau de l'ordinateur, etc. .

Configurer la passerelle par défaut Configurer la passerelle par défaut Dec 07, 2023 pm 03:02 PM

Étapes pour configurer la passerelle par défaut : 1. Ouvrez le panneau de configuration ; 2. Sélectionnez Réseau et Internet ; 3. Configurez la connexion réseau ; 4. Configurez l'adresse du serveur DNS ; 7. Redémarrez la configuration ; appareil. Introduction détaillée : 1. Ouvrez le Panneau de configuration, dans le système Windows, cliquez sur le menu Démarrer, sélectionnez « Panneau de configuration » 2. Sélectionnez Réseau et Internet, dans le Panneau de configuration, sélectionnez « Réseau et Internet » 3. Configurez les connexions réseau ; etc. .

Comment configurer la passerelle par défaut Comment configurer la passerelle par défaut Dec 07, 2023 pm 02:56 PM

Étapes pour configurer la passerelle par défaut : 1. Comprendre l'environnement réseau ; 2. Obtenir l'adresse IP du routeur ; 3. Connectez-vous à l'interface de gestion du routeur ; 4. Recherchez et configurez les paramètres du port WAN ; Enregistrez les paramètres et quittez ; 7. Vérifiez si la connexion réseau est normale. La configuration de la passerelle par défaut est une étape importante dans la configuration du réseau. Elle détermine le routeur que l'hôte utilise pour accéder à Internet.

La différence entre l'exportation et l'exportation par défaut La différence entre l'exportation et l'exportation par défaut Oct 12, 2023 am 10:24 AM

La différence entre export et export default est que le mot-clé export est utilisé pour exporter une ou plusieurs variables, fonctions ou classes, tandis que le mot-clé export default est utilisé pour exporter une variable, une fonction ou une classe par défaut. Dans d'autres modules, vous pouvez utiliser le mot-clé import pour importer ces variables, fonctions ou classes exportées.

Une analyse approfondie de l'utilisation par défaut de PHP : vous dévoile ses secrets Une analyse approfondie de l'utilisation par défaut de PHP : vous dévoile ses secrets Mar 23, 2024 am 08:06 AM

PHP est un langage de script largement utilisé dans le domaine du développement Web. Les développeurs ont beaucoup bénéficié de sa flexibilité et de ses fonctionnalités puissantes. En PHP, définir des valeurs par défaut est une opération courante et le mot-clé default joue un rôle crucial. Cet article analysera en profondeur l'utilisation de la valeur par défaut en PHP, vous révélera ses secrets et le combinera avec des exemples de code spécifiques pour aider les lecteurs à mieux comprendre. 1. Valeurs des paramètres par défaut En PHP, nous pouvons définir des valeurs par défaut pour les paramètres d'une fonction afin d'éviter

Le mot-clé Java contient-il « par défaut » ? Le mot-clé Java contient-il « par défaut » ? Apr 23, 2023 pm 01:13 PM

Default est-il un mot-clé Java ? Réponse : default est un mot-clé dans Java8, également appelé « méthodes d'extension virtuelle ». La traduction chinoise est appelée « méthode d'extension virtuelle », qui contient certaines méthodes d'utilisation par défaut dans l'interface. Lorsque l'interface est étendue, elle n'entrera pas en conflit avec le code de classe d'implémentation lié à l'interface. Introduction à default et java : 1. L'interface précédente était une arme à double tranchant, qui pouvait être orientée vers l'abstraction mais pas vers une programmation spécifique. 2. L'inconvénient est que lorsque vous devez modifier l'interface, vous devez d'abord modifier toutes les classes qui implémentent l'interface. 3. Lorsque vous ne pouvez pas ajouter de nouvelles méthodes à l'interface, cela n'affectera pas l'affichage existant, donc la méthode par défaut est ajoutée pour résoudre le problème pour tout le monde.

Comment implémenter la contrainte par défaut de MySQL et la contrainte de remplissage zéro Zerofill Comment implémenter la contrainte par défaut de MySQL et la contrainte de remplissage zéro Zerofill May 31, 2023 pm 05:10 PM

Contrainte par défaut La contrainte de valeur par défaut MySQL est utilisée pour spécifier la valeur par défaut d'une certaine colonne. Ajouter la méthode de contrainte par défaut 1 : par défaut ; méthode 2 : nom de la table modifiable modifier le type de nom de colonne par défaut valeur par défaut ;--tableau altérable ; nom modifier le nom de la colonne type par défaut valeur par défaut ; createtablet_user11(idint,namevarchar(20),addr

See all articles