Bạn nghĩ gì về AMD (Asynchronous Module Definition) và CommonJS?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
362 lượt xem
Javascript middle

Cả hai đều là cách để triển khai một module system, vốn không có trong JavaScript cho đến khi ES2015 ra đời. CommonJS là đồng bộ trong khi AMD là bất đồng bộ. CommonJS được thiết kế với sự phát triển phía máy chủ trong khi AMD, hỗ trợ tính năng tải các modules một cách bất đồng bộ, dành cho trình duyệt nhiều hơn.

Tôi thấy cú pháp AMD khá dài dòng và CommonJS gần với kiểu bạn viết câu lệnh import trong các ngôn ngữ khác. Hầu hết thời gian, tôi thấy AMD không cần thiết, bởi vì nếu bạn đưa tất cả JavaScript của mình vào một tệp gói được nối, bạn sẽ không được hưởng lợi từ các thuộc tính tải bất đồng bộ. Ngoài ra, cú pháp CommonJS gần với phong cách viết module của Node hơn và có ít chi phí chuyển đổi ngữ cảnh hơn khi chuyển đổi giữa phát triển JavaScript phía máy khách và phía máy chủ.

Tôi rất vui vì với các modules ES2015, có hỗ trợ cả tải đồng bộ và bất đồng bộ, cuối cùng chúng ta có thể chỉ cần bám vào một cách tiếp cận. Mặc dù nó chưa được triển khai hoàn toàn trong các trình duyệt và trong Node, nhưng chúng ta luôn có thể sử dụng các bộ chuyển mã để chuyển đổi mã của mình.

{{login.error}}