71 votes

Différence entre la syntaxe import React et import { Component }.

Disons que nous utilisons React avec ES6. Nous importons React et Component comme

import React from 'react'
import { Component } from 'react'

Pourquoi cette différence de syntaxe ? Ne pouvons-nous pas utiliser comme indiqué ci-dessous ?

import Component from 'react'

0 votes

2 votes

Lorsque vous importez de la bibliothèque React, vous devez importer React comme ceci import React from 'react' Parce que React est une exportation par défaut. En revanche, Component est mis entre accolades car il est facultatif. Les importations optionnelles de la bibliothèque sont mises entre accolades

104voto

Davin Tryon Points 16838

Voici les docs para import .

import React from 'react'

L'exemple ci-dessus est une importation par défaut. Les importations par défaut sont exportées avec export default ... . Il ne peut y avoir qu'une seule exportation par défaut.

import { Component } from 'react'

Mais il s'agit d'une importation membre (importation nommée). Les importations membres sont exportées avec export ... . Il peut y avoir plusieurs exportations membres.

Vous pouvez importer les deux en utilisant cette syntaxe :

import React, { Component } from 'react';

En JavaScript, les importations par défaut et nommées sont séparées. Vous ne pouvez donc pas importer une importation nommée comme si elle était par défaut. L'exemple suivant définit le nom Component à l'exportation par défaut de l 'react' (ce qui ne sera pas la même chose que React.Component :

import Component from 'react';

2 votes

Dans la ligne "import Component from 'react' ;", n'allez-vous pas simplement appeler "Component" l'exportation par défaut de 'react' ? En d'autres termes, Component est l'objet React, exporté par défaut du module 'react', et non null. Je veux dire, l'exportation par défaut n'est pas une exportation nommée, donc le nom n'a pas d'importance.

2 votes

@Josmar oui, je vois que je ne l'ai pas très bien exprimé. j'ai fait un edit. :)

0 votes

Vous avez oublié de mentionner que React n'a pas l'export par défaut donc ce code ne fonctionnera pas à moins d'utiliser un preset Babel de piratage .

3voto

D. Walsh Points 1186

Le composant est une exportation nommée. Par exemple, il doit donc être déstructuré avec {}.

React est un export par défaut pour React à partir de 'react' est correct. ex. export default React

3 votes

Pour clarifier, la déstructuration des importations n'existe pas. Syntaxiquement, c'est similaire, mais il y a quelques différences intéressantes. Kent C Dodds a écrit un article intéressant sur ce

2 votes

@ScottSilvi On dirait que le lien vers l'article est mort.

1 votes

Qu'est-ce qu'une exportation nommée ?

2voto

Prakash Sharma Points 6829

Si dans un fichier vous exportez quelque chose par défaut avec une déclaration du type export default React alors cela peut être importé comme import React .

Pour les autres exportations qui ne sont pas par défaut, nous devons préciser ce que nous voulons réellement importer en le fermant entre parenthèses, comme suit import { Components} .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X