J'ai référé toutes les questions dans stackoverflow. Mais rien de ce qui a été suggéré pourquoi et quand utiliser l’exportation par défaut.
Je viens de voir que le défaut peut être mesuré "Quand il n'y a qu'une exportation dans un fichier"
Toute autre raison d'utiliser l'exportation par défaut dans les modules es6?
Quelques différences qui pourraient vous amener à choisir l’une sur l’autre:
Exportations nommées
Exportations par défaut
Cet article fait un bon travail d'expliquer quand ce serait une bonne idée d'utiliser l'un sur l'autre.
1ère méthode: -
export foo; //so that this can be used in other file
import {foo} from 'abc'; //importing data/fun from module
2ème méthode: -
export default foo; //used in one file
import foo from 'blah'; //importing data/fun from module
3ème méthode: -
export = foo;
import * as foo from 'blah';
Les méthodes ci-dessus sont approximativement compilées selon la syntaxe suivante: -
// toutes les méthodes d'exportation
exports.foo = foo; //1st method
exports['default'] = foo; //2nd method
module.exports = foo; //3rd method
// toutes les méthodes d'importation
var foo = require('abc').foo; //1st method
var foo = require('abc')['default']; //2nd method
var foo = require('abc'); //3rd method
Pour plus d'informations, visitez Explication du mot clé par défaut
Remarque : - Il ne peut y avoir que one
export default
dans le fichier one
.
Donc, chaque fois que nous n'exportons qu'une fonction, il est préférable d'utiliser le mot clé default
lors de l'exportation.
Il n'y a pas de règles définitives, mais certaines conventions sont utilisées pour faciliter la structure ou le partage de code.
Lorsqu'il n'y a qu'une seule exportation dans le fichier entier, il n'y a aucune raison de le nommer. En outre, lorsque votre module a un objectif principal, il peut être judicieux d’en faire votre exportation par défaut. Dans ces cas, vous pouvez ajouter des exportations nommées
Dans react par exemple, React
est l'exportation par défaut, car c'est souvent la seule partie dont vous avez besoin. Vous n’avez pas toujours Component
; il s’agit donc d’une exportation nommée que vous pouvez importer en cas de besoin.
import React, {Component} from 'react';
Dans les autres cas où un module a plusieurs exportations égales (ou presque égales), il est préférable d'utiliser des exportations nommées.
import { blue, red, green } from 'colors';