Mục lục
- Vấn đề
- Require là gì ?
- Import là gì?
- Sự khác nhau giữa require và import
- Kết bài
0. Vấn đề
Heyzo what's up
Xin chào tất cả mọi người, trước đây khi bắt đầu sử dụng import để thay thế require một package hay một module đã có để sử dụng.
Có một thắc mắc là tại sao lại sinh ra thằng import nhỉ trong khi require vẫn dùng tốt?
Sau khi tìm hiểu hôm nay mình sẽ trả lời thắc mắc đó theo suy nghĩ của mình, các bạn cùng đọc và cho ý kiến nhé
1. Require là gì?
Là hàm được xây dựng trong Nodejs theo chuẩn commonjs giúp việc khai báo sử dụng các module đã có sẵn rất dễ dàng, xem ví dụ dưới nhé
Tạo ra một module trong file
hello.js
module.exports = function () {
console.log('Hello everybody!')
}
Giờ, require hello.js vào để sử dụng
main.js
var hello = require('./hello.js')
hello(); // Hello everybody
Rất dễ dàng phải không nào :v
2. Import là gì?
Là tính năng trong ES6 giúp việc khai báo sử dụng các module đã có sẵn rất dễ dàng, à hình như cũng khá là giống require nhỉ :v. Vậy chúng khác nhau cái gì đây, _- chả nhẻ chỉ đổi cách xưng hô, qua phần 3 sẽ rõ nhé. **Let's go*
3. Sự khác nhau giữa require và import
Giống nhau
Trước khi nói điểm khác thì mình xin nói điểm giống giữa hai thằng require và import này nhé
- Giúp việc khai báo sử dụng các module đã có sẵn rất dễ dàng, quản lí code theo module tốt hơn
- Khi biên dịch thì import cũng trở về require để code có thể thực thi
Khác nhau
Thực chất là những thứ hay ho mà thằng import này có mà thằng có nhé (Lí do được sinh ra)
Theo mình cảm nhận thì khi dùng thằng import thì mọi người thấy code mình sáng hơn phải không nào đó là điều đầu tiền mà import mang lại nhé (Cảm quan thôi :v) => Giúp code dễ nhìn đẹp đẽ hơn
require trong Nodejs theo chuẩn commonjs, còn import mới có trong ES6
Trong một package, file có nhiều module thì việc mong muốn chỉ khai báo các module muốn sử dụng để khỏi lãng phí tài nguyên là mong muốn chính đáng phải không nào (Good good good). import cho phép bạn lấy ra từng phần mà bạn thực sự dùng (Không cần lấy ra cả package hay file như anh require nhé) => Giúp tiết kiệm bộ nhớ
Đối với require việc thực thi theo synchronous (Đồng bộ). Còn đối với import sẽ thực thi theo asynchronous (Bất đồng bộ), không quan tâm Chi Dân tới import thằng trên mình => Hiệu suất cải thiện hơn
var hello = require('./hello.js')
var hello1 = require('./hello1.js')
var hello2 = require('./hello2.js')
Lúc loading lên lần lượt là hello -> hello1 -> hello2
-----------------------------
import hello from './hello.js'
import hello1 from './hello1.js'
import hello2 from './hello2.js'
Lúc loading lên có thể là là hello2 -> hello -> hello1
4. Kết bài
Đến đây cũng đã hết bài viết rồi, cảm ơn mọi người đã theo dõi. Nếu có góp ý hay thắc mắc gì thì cứ để lại comment bên dưới mình sẽ trả lời. Xin chào mọi người.
Top comments (2)
Nó đang dùng require mà mình thay từ require bằng từ import thì có được không b?
hoàn toàn được nhé version mới của nodejs hỗ trợ import phía server rồi thì phải