- vừa được xem lúc

[JavaScript] Bài 9 - Library & Framework

0 0 3

Người đăng: Semi Art

Theo Viblo Asia

Trong bài viết này, chúng ta sẽ được gặp lại khái niệm framework và bên cạnh đó chúng ta còn có thêm một khái niệm mới đó là library hay thư viện. Hãy mở đầu với khái niệm mới library.

Sử dụng các thư viện library JavaScript

Khái niệm library hay thư viện trong JavaScript và các ngôn ngữ lập trình nói chung được hiểu là một bộ code cung cấp các công cụ tiện ích giúp chúng ta nhanh chóng thực hiện một thao tác xử lý nào đó với code được viết ngắn gọn hơn, dễ đọc hơn. Chẳng hạn bạn viết một nhóm các hàm xử lý các tác vụ tính toán số học và chia sẻ để người khác sử dụng. Đó có thể xem là một library.

So với các framework thì các library được nhận diện là các bộ code tiện ích nhỏ hơn và không cung cấp các thành phần mang kiến trúc cụ thể trong code triển khai phần mềm hay trong giao diện hiển thị của người dùng.

Và ở đây trong môi trường trình duyệt web, chúng ta thường phải viết rất nhiều các dòng code để truy vấn các phần tử HTML và thực hiện thao tác xử lý nào đó. Điều này đã tạo cảm hứng cho các lập trình viên giàu kinh nghiệm tạo ra và chia sẻ các library tuyệt vời cho tác vụ này:

[jQuery] Bài 1 - jQuery Là Cái Gì?

Việc sử dụng các library còn một ý nghĩa khác nữa là giúp chúng ta đảm bảo rằng code mà chúng ta viết ra sẽ luôn hoạt động tốt trên mọi trình duyệt web. Lý do ở đây là vì các trình duyệt web được phát triển với tiến trình hỗ trợ các tính năng của các ngôn ngữ không đồng đều. Do đó nên khi chúng ta xem tài liệu hướng dẫn tự học của W3schools hay MDN đều có một chỉ mục là Browser Compabilty (Tính tương thích với các trình duyệt).

Một tính năng mới của JavaScript có thể có cú pháp viết ngắn gọn hơn và dễ đọc hơn so với cách viết đã cung cấp trước đó; Nhưng lại chưa chắc đã được tất cả các trình duyệt web hỗ trợ. Đây cũng là điểm mà các thư viện JavaScript có thể giúp chúng ta được phép viết code theo cú pháp sắp được hỗ trợ đầy đủ bởi tất các trình duyệt web. Và thậm chí là cả những cú pháp đang được phát triển, rất được ưa thích bởi cộng đồng lập trình viên, và sắp được ra mắt chính thức. 😄

https://babeljs.io/

Sử dụng thư viện Babel trong trình duyệt web

Ở đây mình muốn giới thiệu cách sử dụng thư viện Babel ngay với mục đích đơn giản là giúp chúng ta có thể yên tâm sử dụng bất kỳ cú pháp hay công cụ nào trong các bài tiếp theo của Series JavaScript. Để sử dụng Babel trực tiếp trong môi trường trình duyệt web, chúng ta cần gắn tệp babel.min.js được cung cấp bởi Babel vào vị trí đứng trước tất cả các thẻ <script> khác trong văn bản HTML:

<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>

Và tất cả các tệp JavaScript khác sẽ cần được chỉ định thuộc tính type="text/babel" để được thông dịch qua thư viện này.

babel.html

<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel"> const getMessage = () => "Hi Babel !"; let message = getMessage(); console.log(message);
</script>

Bây giờ thì chắc chắn là các trình duyệt web phiên bản cũ cũng có thể hiểu được phần "ngoại ngữ" trong code JavaScript của chúng ta rồi. Chúng ta đã có thể hoàn toàn yên tâm và tự tin để tìm hiểu thêm những điều mới mẻ của JavaScript. 😄

Trang blog cá nhân của bạn thế nào rồi?

Ở thời điểm hiện tại thì chúng ta đã có khả năng viết code để tạo ra các trang đơn hoàn chỉnh và trình bày nội dung cho người xem. Chúng ta có thể tạo ra một trang đơn index.html làm trang chủ cho blog đang xây dựng và tải lên Github Pages để mọi người có thể xem. Và rồi tạo ra các trang đơn cho mỗi bài viết blog được đặt trong một thư mục /post bên cạnh index.html để người xem có thể truy xuất tới với đường dẫn https://yourname.github.io/post/bai-blog-thu-10.html.

Tuy nhiên lúc này sau khi đăng tải xong bài viết thứ 10 trên trang blog cá nhân. Chúng ta nhận ra một vấn đề đó là: "Sẽ thế nào nếu như sau khi chúng ta viết xong bài blog thứ 1001 và muốn cập nhật giao diện của trang web cho phù hợp với xu hướng thiết kế web ở thời điểm đó?"

"Chúng ta sẽ mở và chỉnh sửa giao diện của trang chủ index.html và bài viết đầu tiên bai-blog-thu-1.html. Sau đó copy/paste những thay đổi cần thiết lần lượt cho từng bài viết trong số 1000 bài còn lại. Hoặc là có một cách làm nào đó khác mà chúng ta cần tìm ra. 😄"

Vậy là đã đến thời điểm chúng ta cần phải một chút băn khoăn cho cái định nghĩa ban đầu về một trang web mà chúng ta đã có.

Trích đoạn bài viết HTML đầu tiên:

Một website có thể được hiểu đơn giản là một tập các trang web đơn cùng được đặt ở một nơi nào đó trên internet mà mọi người có thể mở và xem được.
_Một người sử dụng máy tính

Cũng không có gì sai cả, nhưng chúng ta thực sự là cần suy nghĩ nhiều hơn một chút về việc tạo ra các trang web đơn.

Các framework JavaScript

Rõ ràng lúc này chúng ta thấy rằng công việc tạo ra các trang web đơn có nhiều thao tác trùng lặp và có thể được tự động hóa để đem lại tiện ích sử dụng, chỉnh sửa, và cập nhật khi cần thiết. Việc tự động hóa để bày ra một giao diện trang web đơn phù hợp với yêu cầu của người sử dụng website có thể được thực hiện xử lý ở 1 trong 2 nơi:

  1. Ngay trên thiết bị của người dùng client-side.
  2. Trên máy chủ web server-side.

Tuy nhiên cho dù là được thực hiện ở đâu thì chúng ta cũng vẫn cần sự hỗ trợ của một framework JavaScript cho một công việc như vậy. Và đối với tiến trình học tập hiện tại của chúng ta đang thực hiện với Series Tự Học Lập Trình Web Một Cách Thật Tự Nhiên, mặc dù Series JavaScript của chúng ta vẫn còn nhiều thứ ở phía trước, nhưng đây thực sự đã là thời điểm rất phù hợp để chúng ta bắt đầu tìm hiểu về việc lập trình logic hiển thị nội dung.

Đối với phương án đầu tiên thì... hãy cứ tin mình đi: "chúng ta thực sự chưa hẳn là đã sẵn sàng cho phương án số 1 ở thời điểm hiện tại". 😄 Vì vậy nên chúng ta sẽ chọn phương án xử lý logic hiển thị hay logic linh động để tạo ra các trang web đơn tại server-side, tức là phương án số 2. 😄.

Bạn sẽ không cần phải học thêm một ngôn ngữ lập trình nữa để bắt đầu đâu, vì ở thời điểm hiện tại JavaScript đã rất rất phổ biến tại server-side và được ưa thích bởi rất rất nhiều lập trình viên. Và trước khi gặp mặt framework giúp chúng ta nhanh chóng xây dựng một logic hiển thị như vậy ở server-side thì trước hết chúng ta cần làm quen với môi trường chạy JavaScript ở đó đã:

[NodeJS] Bài 1 - NodeJS Là Cái Gì?

Tổng kết của một bài viết hơi quá dài

Như vậy là chúng ta đã có một bài viết lan man, tản mạn về 2 khái niệm libraryframework trong JavaScript. Bên cạnh đó là các phần giới thiệu mơ hồ về thư viện jQuery, Babel, và môi trường chạy JavaScript ở server-sideNodeJS. Mặc dù Series bài viết về ngôn ngữ JavaScript nói riêng vẫn sẽ được tiếp tục, mình thực sự rất mong muốn là bạn sẽ tham gia ngay cùng với mình trong 2 Series jQueryNodeJS.

Hẹn gặp lại bạn trong các bài viết tiếp theo. 😄

(Sắp đăng tải) [JavaScript] Bài 10 - Kiểu & Hằng

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 500

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414

- vừa được xem lúc

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 136

- vừa được xem lúc

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 117

- vừa được xem lúc

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 93

- vừa được xem lúc

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 229