Có bất kỳ lợi ích hiệu suất để sử dụng cái này hơn cái kia không?
Câu trả lời hiện tại là không, bởi vì không có công cụ trình duyệt hiện tại nào thực hiện import/exporttừ tiêu chuẩn ES6.
Một số biểu đồ so sánh http: // Khangax.github.io/compat-table/es6/ không tính đến điều này, vì vậy khi bạn thấy hầu hết các màu xanh lục cho Chrome, hãy cẩn thận. importtừ khóa từ ES6 chưa được đưa vào tài khoản.
Nói cách khác, các công cụ trình duyệt hiện tại bao gồm V8 không thể nhập tệp JavaScript mới từ tệp JavaScript chính thông qua bất kỳ chỉ thị JavaScript nào.
(Chúng tôi có thể vẫn chỉ là một vài lỗi hoặc cách đó vài năm cho đến khi V8 thực hiện theo thông số kỹ thuật ES6.)
Tài liệu này là những gì chúng ta cần, và tài liệu này là những gì chúng ta phải tuân theo.
Và tiêu chuẩn ES6 nói rằng các phụ thuộc mô-đun nên có trước khi chúng ta đọc mô-đun như trong ngôn ngữ lập trình C, nơi chúng ta có .hcác tệp (tiêu đề) .
Đây là một cấu trúc tốt và được thử nghiệm tốt, và tôi chắc chắn rằng các chuyên gia tạo ra tiêu chuẩn ES6 đã nghĩ đến điều đó.
Đây là những gì cho phép Webpack hoặc các gói gói khác tối ưu hóa gói trong một số trường hợp đặc biệt và giảm một số phụ thuộc từ gói không cần thiết. Nhưng trong trường hợp chúng ta có sự phụ thuộc hoàn hảo thì điều này sẽ không bao giờ xảy ra.
Nó sẽ cần một thời gian cho đến khi import/exporthỗ trợ bản địa đi vào hoạt động và requiretừ khóa sẽ không đi đến đâu trong một thời gian dài.
Là requiregì
Đây là node.jscách để tải các mô-đun. ( https://github.com/nodejs/node )
Nút sử dụng các phương thức cấp hệ thống để đọc tệp. Bạn cơ bản dựa vào đó khi sử dụng require. requiresẽ kết thúc trong một số cuộc gọi hệ thống như uv_fs_open(phụ thuộc vào hệ thống cuối, Linux, Mac, Windows) để tải tệp / mô-đun JavaScript.
Để kiểm tra xem điều này có đúng không, hãy thử sử dụng Babel.js và bạn sẽ thấy importtừ khóa sẽ được chuyển đổi thành require.

node --experimental-modules index.mjscho phép bạn sử dụngimportmà không cần Babel và hoạt động trong Node 8.5.0+. Bạn cũng có thể (và nên) xuất bản các gói npm của mình dưới dạng ESModule gốc , với khả năng tương thích ngược chorequirecách cũ .