Trong bài viết này, hãy cho chúng tôi hiểu các câu lệnh JavaScript require[] và import[] làm gì, cách chúng tìm nạp các mô-đun và sự khác biệt của chúng. Trước tiên, chúng ta sẽ bắt đầu bằng cách tìm hiểu mô-đun JavaScript là gì
Mô-đun JavaScript là một tệp chứa một vài dòng mã được viết bằng JavaScript. Chúng giống như Thư viện JavaScript. Các mô-đun thường chứa một lớp hoặc một thư viện các hàm được sử dụng cho một mục đích cụ thể. Chúng có thể được gọi với sự trợ giúp của các câu lệnh yêu cầu và nhập khẩu. Việc sử dụng các mô-đun làm giảm số dòng mã trong chương trình/tập lệnh của một người. Một lợi thế chính của các mô-đun là các chức năng của một mô-đun khác có thể được gọi mà không cần viết phần thân của các chức năng đó
Một số mô-đun phổ biến là
Các mô-đun CommonJS, AMD, RequireJS, ES[ECMAScript]6. Tham khảo bài viết trung bình này để được giải thích sâu về cách các mô-đun này khác nhau
Mục lục
- Cú pháp và giải thích
- Yêu cầu [] khác với nhập [] như thế nào
Cú pháp và giải thích
1] yêu cầu[]
Trong NodeJS, yêu cầu [] là một chức năng tích hợp để bao gồm các mô-đun bên ngoài tồn tại trong các tệp riêng biệt. câu lệnh require[] về cơ bản đọc một tệp JavaScript, thực thi nó và sau đó tiến hành trả về đối tượng xuất. câu lệnh require[] không chỉ cho phép thêm các mô-đun NodeJS lõi tích hợp sẵn mà còn cả các mô-đun cục bộ và dựa trên cộng đồng
cú pháp
Để bao gồm một mô-đun, hàm require[] được sử dụng với tên của mô-đun
var myVar = require['http']; //to use built-in modules
Var myVar2 = require['./myLocaModule'] to use local modules
2] nhập[]
Các câu lệnh import[] & export[] được sử dụng để chỉ mô-đun ES. Các mô-đun khác với các loại tệp như. không thể nhập json với các câu lệnh này. Chúng chỉ được phép sử dụng trong các mô-đun ES và từ chỉ định của câu lệnh này có thể là đường dẫn tương đối kiểu URL hoặc tên gói. Ngoài ra, câu lệnh nhập không thể được sử dụng trong các tập lệnh được nhúng trừ khi tập lệnh đó có loại = "mô-đun". Nhập động có thể được sử dụng cho các tập lệnh có loại không phải là "mô-đun"
cú pháp
var myVac = import["module-name"];
Yêu cầu [] khác với nhập [] như thế nào
Một trong những điểm khác biệt chính giữa require[] và import[] là require[] có thể được gọi từ bất kỳ đâu trong chương trình trong khi import[] không thể được gọi một cách có điều kiện, nó luôn chạy ở đầu tệp
Để sử dụng câu lệnh require[], một mô-đun phải được lưu với. phần mở rộng js trái ngược với. mjs khi câu lệnh import[] được sử dụng
var msg = require['./Messages.js'];
console.log[msg];
5 là một đối tượng đặc biệt được bao gồm trong mọi tệp JavaScript trong Nút. ứng dụng js theo mặc định. var msg = require['./Messages.js'];
console.log[msg];
6 là một biến đại diện cho mô-đun hiện tại và var msg = require['./Messages.js'];
console.log[msg];
7 là một đối tượng sẽ được hiển thị dưới dạng mô-đun. Vì vậy, bất cứ điều gì bạn gán cho var msg = require['./Messages.js'];
console.log[msg];
5 sẽ được hiển thị dưới dạng một mô-đunHãy xem cách hiển thị các loại khác nhau dưới dạng mô-đun bằng cách sử dụng
var msg = require['./Messages.js'];
console.log[msg];
5Xuất chữ
Như đã đề cập ở trên,
var msg = require['./Messages.js'];
console.log[msg];
7 là một đối tượng. Vì vậy, nó hiển thị bất cứ thứ gì bạn đã gán cho nó dưới dạng một mô-đun. Ví dụ: nếu bạn gán một chuỗi ký tự thì nó sẽ hiển thị chuỗi ký tự đó dưới dạng một mô-đunVí dụ sau hiển thị thông báo chuỗi đơn giản dưới dạng mô-đun trong Thông báo. js
Thông điệp. js
Sao chép________số 8
Bây giờ, nhập mô-đun tin nhắn này và sử dụng nó như hình bên dưới
ứng dụng. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
Chạy ví dụ trên và xem kết quả, như hình bên dưới
C. \> ứng dụng nút. jsChào thế giới
Ghi chú
Bạn phải chỉ định
var myVac = import["module-name"];
01 làm đường dẫn của thư mục gốc để nhập mô-đun cục bộ. Tuy nhiên, bạn không cần chỉ định đường dẫn để nhập Node. mô-đun lõi js hoặc mô-đun NPM trong hàm var myVac = import["module-name"];
02Xuất đối tượng
var msg = require['./Messages.js'];
console.log[msg];
7 là một đối tượng. Vì vậy, bạn có thể đính kèm các thuộc tính hoặc phương thức cho nó. Ví dụ sau hiển thị một đối tượng có thuộc tính chuỗi trong tệp var myVac = import["module-name"];
04Thông điệp. js
Sao chépvar myVac = import["module-name"];
0Trong ví dụ trên, chúng tôi đã đính kèm thuộc tính
var myVac = import["module-name"];
05 cho đối tượng xuất khẩu. Bây giờ, nhập và sử dụng mô-đun này, như hình bên dướiứng dụng. js
Sao chépvar myVac = import["module-name"];
6Trong ví dụ trên, hàm
var myVac = import["module-name"];
02 sẽ trả về một đối tượng var myVac = import["module-name"];
07 và gán nó cho biến msg. Vì vậy, bây giờ bạn có thể sử dụng var myVac = import["module-name"];
08Chạy ví dụ trên bằng cách viết
var myVac = import["module-name"];
09 trong dấu nhắc lệnh và xem đầu ra như hình bên dướiC. \> ứng dụng nút. jsXin chào thế giới
Theo cách tương tự như trên, bạn có thể hiển thị một đối tượng có chức năng. Ví dụ sau hiển thị một đối tượng có hàm
var myVac = import["module-name"];
60 dưới dạng mô-đunNhật ký. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
2Mô-đun trên sẽ hiển thị một đối tượng-
var myVac = import["module-name"];
61. Sử dụng mô-đun trên như hình dưới đâyứng dụng. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
4Chạy và xem đầu ra trong dấu nhắc lệnh như hình bên dưới
C. \> ứng dụng nút. jsXin chào thế giới
Bạn cũng có thể đính kèm một đối tượng vào
var msg = require['./Messages.js'];
console.log[msg];
5, như hình bên dướidữ liệu. js
var msg = require['./Messages.js'];
console.log[msg];
6ứng dụng. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
7Chạy ví dụ trên và xem kết quả, như hình bên dưới
C. \> ứng dụng nút. jsJames Bond
Chức năng xuất khẩu
Bạn có thể đính kèm một chức năng ẩn danh để xuất đối tượng như hình dưới đây
Nhật ký. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
8Bây giờ, bạn có thể sử dụng mô-đun trên, như hình bên dưới
ứng dụng. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
9Biến
var myVac = import["module-name"];
63 trở thành một biểu thức hàm trong ví dụ trên. Vì vậy, bạn có thể gọi hàm bằng dấu ngoặc đơn var myVac = import["module-name"];
64. Chạy ví dụ trên và xem đầu ra như hình bên dướiC. \> ứng dụng nút. jsXin chào thế giới
Hàm xuất dưới dạng Lớp
Trong JavaScript, một hàm có thể được coi như một lớp. Ví dụ sau đây cho thấy một chức năng có thể được sử dụng như một lớp
Người. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
0Mô-đun trên có thể được sử dụng, như hình bên dưới
ứng dụng. js
var msg = require['./Messages.js'];
console.log[msg];
1Như bạn có thể thấy, chúng tôi đã tạo một đối tượng
var myVac = import["module-name"];
65 bằng cách sử dụng từ khóa var myVac = import["module-name"];
66. Chạy ví dụ trên, như hình bên dướiC. \> ứng dụng nút. jsJames Bond
Bằng cách này, bạn có thể xuất và nhập mô-đun cục bộ được tạo trong một tệp riêng trong thư mục gốc
Nút. js cũng cho phép bạn tạo các mô-đun trong thư mục con. Hãy xem cách tải mô-đun từ các thư mục con
Tải mô-đun từ thư mục riêng
Sử dụng đường dẫn đầy đủ của tệp mô-đun mà bạn đã xuất nó bằng cách sử dụng
var msg = require['./Messages.js'];
console.log[msg];
5. Ví dụ: nếu mô-đun nhật ký trong nhật ký. js được lưu trữ trong thư mục var myVac = import["module-name"];
68 trong thư mục gốc của ứng dụng của bạn, sau đó nhập nó, như hình bên dướiứng dụng. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
2Trong ví dụ trên,
var myVac = import["module-name"];
69 dành cho thư mục gốc, sau đó chỉ định đường dẫn chính xác của tệp mô-đun của bạn. Nút. js cũng cho phép chúng tôi chỉ định đường dẫn đến thư mục mà không chỉ định tên tệp. Ví dụ: bạn có thể chỉ định thư mục tiện ích mà không chỉ định var msg = require['./Messages.js'];
console.log[msg];
20, như minh họa bên dướiứng dụng. js
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
3Trong ví dụ trên, Nút. js sẽ tìm kiếm tệp định nghĩa gói có tên là
var msg = require['./Messages.js'];
console.log[msg];
21 bên trong thư mục tiện ích. Điều này là do Node giả định rằng thư mục này là một gói và sẽ cố gắng tìm định nghĩa gói. Tệp var msg = require['./Messages.js'];
console.log[msg];
21 phải nằm trong thư mục mô-đun. Thư mục tiện ích var msg = require['./Messages.js'];
console.log[msg];
21 chỉ định tên tệp bằng khóa var msg = require['./Messages.js'];
console.log[msg];
24, như hình bên dưới/tiện ích/gói. json
Sao chépvar msg = require['./Messages.js'];
console.log[msg];
4Bây giờ, nút. js sẽ tìm tệp
var msg = require['./Messages.js'];
console.log[msg];
20 bằng cách sử dụng mục nhập var msg = require['./Messages.js'];
console.log[msg];
24 trong var msg = require['./Messages.js'];
console.log[msg];
21 và nhập tệp đóGhi chú
Nếu tệp
var msg = require['./Messages.js'];
console.log[msg];
21 không tồn tại thì nó sẽ tìm kiếm chỉ mục. js dưới dạng tệp mô-đun theo mặc định