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
Mô-đun JavaScript về cơ bản là các thư viện được bao gồm trong chương trình đã cho. Chúng được sử dụng để kết nối hai chương trình JavaScript với nhau để gọi các hàm được viết trong một chương trình mà không cần viết phần thân của các hàm đó trong một chương trình khác.
Nhập thư viện. Nó có nghĩa là bao gồm một thư viện trong một chương trình để sử dụng chức năng được xác định trong thư viện đó. Đối với điều này, hãy sử dụng chức năng 'yêu cầu' trong đó chuyển tên thư viện với đường dẫn tương đối của nó.
Ví dụ. Giả sử một thư viện được tạo trong cùng thư mục với thư viện tên tệp. js, sau đó bao gồm tệp bằng cách sử dụng chức năng yêu cầu
const lib = require['./library']
sẽ trả về một tham chiếu đến thư viện đó. Bây giờ nếu có một chức năng khu vực được xác định trong thư viện, thì hãy sử dụng nó như lib. diện tích[].
Xuất thư viện. Có một đối tượng đặc biệt trong JavaScript được gọi là mô-đun. xuất khẩu. Khi một số chương trình bao gồm hoặc nhập mô-đun này [chương trình], đối tượng này sẽ được hiển thị. Do đó, tất cả các chức năng cần được hiển thị hoặc cần có sẵn để nó có thể sử dụng trong một số tệp khác, được xác định trong mô-đun. xuất khẩu.
Ví dụ. Trong ví dụ này, chúng ta sẽ viết hai chương trình khác nhau và sau đó xem cách sử dụng các hàm được định nghĩa trong thư viện [Module] trong một chương trình nhất định. Chúng ta sẽ định nghĩa hai hàm đơn giản trong thư viện để tính và in diện tích và chu vi hình chữ nhật khi được cung cấp chiều dài và chiều rộng. Sau đó xuất các chức năng để các chương trình khác có thể nhập chúng nếu cần và có thể sử dụng chúng
Xuất ví dụ mô-đun. thư viện. js
Javascript
var myVac = import["module-name"];
7var myVac = import["module-name"];
8var myVac = import["module-name"];
9const lib = require['./library']0
const lib = require['./library']1
const lib = require['./library']2____23
const lib = require['./library']2______30
Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit1
Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit2
Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit3
Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit4
var myVac = import["module-name"];
8Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit6
Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit7
var myVac = import["module-name"];
8Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit9
const lib = require['./library']0
const lib = require['./library']1
const lib = require['./library']2____173
const lib = require['./library']2______30
var myVac = import["module-name"];
76 var myVac = import["module-name"];
77var myVac = import["module-name"];
78Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit4
var myVac = import["module-name"];
8Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit6
Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit7
var myVac = import["module-name"];
8var myVac = import["module-name"];
84const lib = require['./library']2____186
const lib = require['./library']2____188
var myVac = import["module-name"];
8Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit6
var myVac = import["module-name"];
91Ví dụ nhập mô-đun
Để nhập bất kỳ mô-đun nào, hãy sử dụng một hàm gọi là 'require' lấy tên mô-đun và nếu đó là mô-đun do người dùng xác định thì đường dẫn tương đối của nó làm đối số và trả về tham chiếu của nó.
Kịch bản. js chứa mô-đun JavaScript ở trên [thư viện. js].
Kịch bản. js
Javascript
var myVac = import["module-name"];
7var myVac = import["module-name"];
8var myVac = import["module-name"];
94____195var myVac = import["module-name"];
96var myVac = import["module-name"];
8var myVac = import["module-name"];
98var myVac = import["module-name"];
8const lib = require['./library']00
var myVac = import["module-name"];
8const lib = require['./library']02
const lib = require['./library']03
var myVac = import["module-name"];
8const lib = require['./library']05
var myVac = import["module-name"];
8const lib = require['./library']07
var myVac = import["module-name"];
91đầu ra
Area of the rectangle is 50 square unit Perimeter of the rectangle is 30 unit
Để tìm hiểu về các phương pháp xuất và nhập mới trong ES6. Bấm vào đây
Ghi chú. Để chạy tập lệnh, trước tiên hãy tạo cả hai tệp trong cùng một thư mục rồi chạy tập lệnh. js bằng trình thông dịch NodeJs trong thiết bị đầu cuối