Nếu 'React' là xuất mặc định từ 'React', Tại sao chúng ta không thể sử dụng một số tên khác thay vì 'React'


9

Vì vậy, tôi đã tìm kiếm một số câu trả lời cho câu hỏi này và thấy rằng trong khi nhập, 'React' không cần phải ở {} vì đây là bản xuất mặc định và không phải là bản xuất có tên, Vâng cũng đúng, nhưng tôi cũng đã thấy rằng trong khi nhập một xuất khẩu mặc định, chúng ta có thể sử dụng bất kỳ tên nào cho nó khi nhập. Nhưng trong trường hợp này, chúng tôi chỉ có thể sử dụng nhập dưới đây,

import React from 'react';

và không

import Somename from 'react';

Câu trả lời:


10

Bạn có thể nhập React theo cách đó, nhưng nếu bạn đang sử dụng JSX, bạn cũng cần cập nhật cấu hình của mình để thông báo cho bộ chuyển đổi rằng bạn đang sử dụng chức năng "trình tạo" không còn nữa React.createElementmà thay vào đó Somename.createElement. (Nếu bạn đang sử dụng Babel, bạn thực hiện điều đó bằng pragmachỉ thị .) Đó là bởi vì, như trong tài liệu React , điều này:

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

Được dịch sang:

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

... vì vậy React(hoặc bất kỳ tên nào bạn thay đổi thành trong cấu hình) phải nằm trong phạm vi . Ngoài ra, nó ổn.


1
Chỉ cần thêm vào điều này một chút, thật hữu ích khi thực sự thấy những gì một bộ chuyển mã đang làm với JSX. Đây là một ví dụ .
Nick

1
Cảm ơn bạn @TJ Crowder và @ Nick, Đó là những lời giải thích rất tốt.
Tick20
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.