Vâng sự khác biệt giữa việc bạn nên nhập các thành phần của mình within brackets or without it
nằm trong cách bạn export
nó.
Có hai loại xuất khẩu
- Mặc định Xuất
- Names Xuất
Một thành phần có thể có one default export and zero or more named
xuất khẩu
Nếu một thành phần là một xuất khẩu mặc định thì bạn cần phải nhập khẩu không có dấu ngoặc đơn Ví dụ
export default App;
Việc nhập khẩu nó như
import App from './path/to/App';
Một xuất khẩu tên là có thể giống như
export const A = 25;
hoặc
export {MyComponent};
Các bạn có thể nhập nó như
01.
import {A} from './path/to/A';
hoặc
import {A as SomeName} from './path/to/A';
Nếu thành phần của bạn có một xuất khẩu mặc định và vài tên xuất khẩu, thậm chí bạn có thể kết hợp chúng lại với nhau trong khi nhập khẩu
import App, {A as SomeName} from './path/to/file';
Tương tự như vậy trong trường hợp react
và react-dom
, React
và ReactDOM
tương ứng là default exports
trong khi, ví dụ Component
là named export
trong react
và render
là một xuất khẩu được đặt tên theo số react-dom
. Thats lý do bạn có thể làm
import ReactDOM from 'react-dom';
và sau đó sử dụng
ReactDOM.render()
hoặc sử dụng nó như đã đề cập trong câu hỏi của bạn.
Nguồn
2016-12-27 03:30:32
Đề nghị đọc http://www.2ality.com/2014/09/es6-modules-final.html không cần phải hỏi điều này trên SO –
Câu trả lời ngắn gọn: đây là sự phá hoại es6 sắp diễn ra. 'var React' sẽ được gán cho mọi thứ được xuất từ' 'react'' và 'var render' sẽ được gán cho thuộc tính' render' của bất kỳ thứ gì được xuất từ '' react-dom'' – therobinkim
Có thể trùng lặp [Khi nào nên Tôi sử dụng dấu ngoặc nhọn cho ES6 nhập khẩu?] (Http://stackoverflow.com/questions/36795819/when-should-i-use-curly-braces-for-es6-import) – jpdelatorre