Jeśli „React” jest domyślnym eksportem z „React”, dlaczego nie możemy użyć innej nazwy zamiast „React”


9

Szukałem odpowiedzi na to pytanie i odkryłem, że podczas importowania „React” nie musi znajdować się w {}, ponieważ jest to domyślny eksport, a nie eksport nazwany. Cóż, to prawda, ale widziałem że podczas importowania domyślnego eksportu możemy użyć dowolnej nazwy dla tego importu. Ale w tym przypadku możemy użyć tylko poniższego importu,

import React from 'react';

i nie

import Somename from 'react';

Odpowiedzi:


10

Państwo może importować React ten sposób, ale jeśli używasz JSX, należy również zaktualizować konfigurację, aby powiedzieć transpiler że używasz, że funkcja „budowniczy” nie jest już React.createElement, ale zamiast Somename.createElement. (Jeśli używasz Babel, robisz to zgodnie z pragmadyrektywą .) Jest tak, ponieważ, jak napisano w dokumentacji React , to:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);

Jest transpilowany do:

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);

... więc React(lub jakakolwiek nazwa, którą zmienisz w konfiguracji) musi być objęty zakresem . Poza tym jest w porządku.


1
Wystarczy dodać, że warto zobaczyć, co robi transpiler z JSX. Oto przykład .
Nick

1
Dziękuję @ TJ Crowder i @ Nick, To były bardzo dobre wyjaśnienia.
Tick20
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.