Jika 'React' adalah ekspor default dari 'react', Kenapa kita tidak bisa menggunakan nama lain alih-alih 'React'

9

Jadi, saya sedang mencari jawaban untuk pertanyaan ini dan menemukan bahwa ketika mengimpor, 'Bereaksi' tidak perlu berada di {} karena ini adalah ekspor default dan bukan ekspor bernama, Yah itu benar, tapi saya juga melihat bahwa ketika mengimpor ekspor default, kita dapat menggunakan nama apa pun untuk impor. Tetapi dalam hal ini, kita hanya dapat menggunakan impor di bawah ini,

import React from 'react';

dan tidak

import Somename from 'react';
Tick20
sumber

Jawaban:

10

Anda dapat mengimpor Bereaksi seperti itu, tetapi jika Anda menggunakan JSX, Anda juga perlu memperbarui konfigurasi Anda untuk memberi tahu transpiler bahwa Anda menggunakan fungsi "builder" tidak lagi React.createElement, tetapi sebaliknya Somename.createElement. (Jika Anda menggunakan Babel, Anda melakukannya dengan pragmaarahan .) Itu karena, seperti yang tertulis dalam dokumentasi Bereaksi , ini:

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

Dipindahkan ke:

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

... so React(atau nama apa pun yang Anda ubah dalam konfigurasi) harus dalam cakupan . Selain itu, tidak apa-apa.

TJ Crowder
sumber
1
Hanya dengan menambahkan sedikit ini, akan sangat membantu untuk benar-benar melihat apa yang dilakukan transpiler dengan JSX. Ini sebuah contoh .
Nick
1
Terima kasih @TJ Crowder dan @ Nick, Itu penjelasan yang sangat bagus.
Tick20