Hãy lấy từng cái một.
xuất khẩu const
export const foo
Đây là ES6 cú pháp xuất khẩu đối với mặt hàng xuất khẩu được đặt tên. Bạn có thể có nhiều hàng hóa được đặt tên. Nó nói rằng bạn muốn xuất khẩu giá trị của biến số foo
và bạn cũng tuyên bố rằng biểu tượng đó là const
trong mô-đun này.
Bạn thực sự không thể tự mình sử dụng export const foo
giống như bạn có thể tự mình sử dụng const foo;
. Thay vào đó, bạn sẽ phải gán một cái gì đó cho nó:
export const foo = 12;
const
chỉ áp dụng cho chính mô-đun đó. Nó không ảnh hưởng đến những gì ai đó có thể làm với giá trị khi họ đã nhập giá trị từ mô-đun ở đầu kia bởi vì ở đầu kia (nơi được nhập), giá trị của nó được sao chép vào biến khác. Nếu biến khác được tạo bằng câu lệnh nhập, thì đó là tự động const
ở phía nhập (bạn không thể gán cho nó) cho dù nó được khai báo ở phía xuất khẩu.
Điều này có thể được nhập khẩu như một trong những:
import {foo as localFoo} from 'lib';
import {foo} from 'lib';
Hàng hóa nhập khẩu đầu tiên foo
tài sản của các mô-đun vào một biến có tên localFoo
. Thứ hai nhập khẩu thuộc tính foo
của mô-đun vào một biến có tên là foo
.
xuất khẩu mặc định
export default foo
Đây cũng là cú pháp ES6 và nói rằng bạn cũng muốn export các giá trị của biến foo
và bạn muốn điều đó là giá trị default
xuất khẩu vì vậy nếu một người nào đó chỉ nhập khẩu mô-đun và không phải bất kỳ thuộc tính nào của mô-đun, đây là biến mà chúng sẽ nhận được. Bạn chỉ có thể có một xuất khẩu default
cho mỗi mô-đun.
Bên trong, việc xuất khẩu mặc định là thực sự chỉ là một tên xuất khẩu với tên đặc biệt default
giao:
import localVar from 'myLib';
này sẽ nhận được default
xuất khẩu từ mylib và gán nó là giá trị cho một biến khai báo ở địa phương tên là localVar
. Ở trên là viết tắt của điều này:
import { default as localVar } from 'lib';
Vì vậy, xuất khẩu default
chỉ cho phép bạn nhập phím tắt cho một lần xuất cụ thể. Cú pháp xuất/nhập ES6 được thiết kế để làm cho cú pháp càng ngắn càng tốt để nhập/xuất mặc định. Nhưng, vì lý do hiển nhiên, chỉ có một thuộc tính mặc định cho mỗi mô-đun.
module.exports
// inside of myModule
module.exports = foo;
Đây là cú pháp Node.js cho xuất khẩu giá trị của biến foo
và bạn đang xuất khẩu nó ở cấp cao nhất. Khi ai đó sử dụng mô-đun này:
let x = require('myModule');
console.log(x); // will show the value of `foo` from the previous module
Đây không phải là cú pháp ES6, nhưng là thường xuyên ES5 tương thích với cú pháp sử dụng cơ sở hạ tầng module.exports
và require()
xây dựng vào node.js.
Hãy xem xét điều này: http://stackoverflow.com/questions/40294870/module-exports-vs-export-default-in-node-js-and-es6 – technophobia