Javascript yêu cầu lớp từ mô-đun

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ô-đun

Hã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];
5

Xuấ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ô-đun

Ví 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ép

var 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. js
Chà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"];
02

Xuấ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"];
04

Thông điệp. js

Sao chép

var myVac = import["module-name"];
0

Trong 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ép

var myVac = import["module-name"];
6

Trong 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"];
08

Chạ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ưới

C. \> ứng dụng nút. js
Xin 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ô-đun

Nhật ký. js

Sao chép

var msg = require['./Messages.js'];

console.log[msg];
2

Mô-đ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ép

var msg = require['./Messages.js'];

console.log[msg];
4

Chạ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. js
Xin 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ưới

dữ liệu. js

Sao chép

var msg = require['./Messages.js'];

console.log[msg];
6

ứng dụng. js

Sao chép

var msg = require['./Messages.js'];

console.log[msg];
7

Chạy ví dụ trên và xem kết quả, như hình bên dưới

C. \> ứng dụng nút. js
James 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ép

var msg = require['./Messages.js'];

console.log[msg];
8

Bâ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ép

var msg = require['./Messages.js'];

console.log[msg];
9

Biế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ưới

C. \> ứng dụng nút. js
Xin 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ép

var msg = require['./Messages.js'];

console.log[msg];
0

Mô-đun trên có thể được sử dụng, như hình bên dưới

ứng dụng. js

Sao chép

var msg = require['./Messages.js'];

console.log[msg];
1

Như 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ưới

C. \> ứng dụng nút. js
James 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ép

var msg = require['./Messages.js'];

console.log[msg];
2

Trong 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ép

var msg = require['./Messages.js'];

console.log[msg];
3

Trong 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ép

var msg = require['./Messages.js'];

console.log[msg];
4

Bâ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

Bạn có thể sử dụng yêu cầu trong một mô-đun không?

yêu cầu không phải là mô-đun . Theo mặc định, các mô-đun nút sử dụng cú pháp commonJS nhưng giờ đây bạn cũng có thể sử dụng các mô-đun ES trong nút. Nếu phần mở rộng của tệp script của bạn là. mjs hoặc nếu gõ thuộc tính trong gói.

Làm cách nào để sử dụng lớp từ tệp js khác?

Cách nhập một lớp từ một tệp khác trong JavaScript. .
Xuất lớp từ tệp A, e. g. lớp xuất Nhân viên {}
Nhập lớp trong tệp B dưới dạng nhập {Employee} from '. /another-file. js'
Khởi tạo lớp trong tệp B

Tôi có thể sử dụng yêu cầu trong JavaScript không?

“Yêu cầu” được tích hợp sẵn với NodeJS . Tuy nhiên, nếu bạn đang sử dụng yêu cầu để lấy các mô-đun cục bộ, trước tiên, bạn cần xuất chúng bằng mô-đun. you can include them in your JavaScript files and use their functions and variables. However, if you are using require to get local modules, first you need to export them using module.

Chủ Đề