web-dev-qa-db-fra.com

Pourquoi et quand utiliser l'exportation par défaut par rapport aux exportations nommées dans les modules es6?

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?

4
vbharath

Quelques différences qui pourraient vous amener à choisir l’une sur l’autre:

Exportations nommées

  • Peut exporter plusieurs valeurs
  • DOIT utiliser le nom exporté lors de l'importation

Exportations par défaut

  • Exporter une valeur unique
  • Peut utiliser n'importe quel nom lors de l'importation

Cet article fait un bon travail d'expliquer quand ce serait une bonne idée d'utiliser l'un sur l'autre.

5
Ben

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.

0
VIKAS KOHLI

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';
0
Vinno97