Xây dựng một website cực nhanh với Gridsome

Tram Ho

Trong bài viết trước, mình đã giới thiệu tới các bạn VuePress, trong bài viết này sẽ tiếp tục là 1 công cụ nữa, tiếp tục là 1 công cụ để xây dựng static web nữa là Gridsome.

Demo blog xây dựng từ Gridsome tại đây.

Về Gridsome

Gridsome cũng được xây dựng với Vue.js và được phát triển nằm trong Jamstack framework, nó được sử dụng để tạo ra website nhanh nhất có thể, đáp ứng được nhu cầu người dùng.

Điểm mạnh của Gridsome là :

  • Vue.js cho frontend: Nếu bạn đã sử dụng qua Vue thì đây là một framework cực kỳ thân thiện, dễ sử dụng với người dùng, công động phát triển đông đảo.
  • Việc tạo nội dung trên website cũng khá đơn giản, Gridsome tương thích với rất nhiều CMS tiện dụng, và cũng sử dụng Markdown để viết nội dung.
  • Local development with hot-reloading: Giống như VuePress, Gridsome cũng có local server, giúp việc phát triển dễ dàng hơn
  • Routing trên website dựa trên file, điều này tương tự như VuePress
  • GraphQL data layer: Database của Gridsome sử dụng GraphQL, rất đơn giản để quản lý và truy xuất.
  • Plugin ecosystem : Số lượng plugin được xây dựng phong phú, dễ dàng sử dụng.

Gridsome hoạt động như nào ?

Gridsome sẽ generate các trang Markdown của bạn thành các trang HTML tĩnh, sau khi được trình duyệt load ra, website của bạn sẽ là một Vue SPA, trải nghiệm người dùng sẽ tốt hơn rất nhiều.

Gridsome sẽ build 1 file html và 1 file json cho mỗi trang. Sau khi trang đầu tiên được load, nó sẽ chỉ sử dụng file json để prefetch và lấy dữ iiệ cho trang tiếp theo, phần script js sẽ được build theo từng page, khiến tốc độ load mỗi lần sẽ giảm đi rất nhiều.

Bắt đầu xây dựng web bằng Gridsome thôi

Cài đặt Gridsome

Trước tiên bạn cần có Node (v8.3+) và mình sử dụng Yarn để cài các thư viện nhé

Tadaa vậy là local server đã được bật, giao diện cũng khá đơn sơ nhỉ ?

Cấu trúc thư mục dự án cũng khá tường minh:

Giờ mình cùng làm cho nó thêm sinh động 1 chút nhaa

Cài thêm chút thư viện, plugin vô

Để thêm thư viện và plugin bạn bổ sung chúng vào trong file package.json nhé, sau đó lại chạy yarn install

và cấu hình các plugin đó vào trong file gridsome.config.js

Trong file này mình có cấu hình thêm các plugin để gridsome tự động tìm đến các file Markdown nội dung của web và compile chúng ra html, plugin sitemap để tạo ra file sitemap – giúp việc Google có thể index website của bạn trên internet sau này, plugin Google Analytics để bạn theo dõi được lượng truy cập tới website các thứ,…

Bạn có thể tìm hiểu thêm các config khác từ https://gridsome.org/docs/config .

Tạo layout cho trang

Layout của trang web được đặt trong thư mục src/Layouts/Default.vue , nó là layout mặc định và được sử dụng trong toàn bộ các trang.

Chúng ta sẽ có 1 layout như này

Hiển thị nội dung lên trang chủ

Để đưa nội dung lên Gridsome, bạn cần bổ sung các trang Markdown vào trong thư mụcarticle/posts/ . Với header của từng file có template như sau

Cách Gridsome tạo ra các url cũng tương tự như VuePress, nó sẽ tự động xử lý các file *.vue bên trong thư mục src/pages/ . Trang chủ của chúng ta sẽ là file src/pages/Index.vue, mình sẽ sửa chúng để lấy các bài viết trong thư mục article và hiển thị danh sách lên trang chủ

Kết quả ta sẽ được giao diện trang chủ như này

Tạm kết

Qua bài viết này, hi vọng các bạn đã có thể dựng cho mình 1 website bằng Gridsome khá là nhanh gọn.
Trong bài viết tới, mình sẽ hướng dẫn các bạn cách deploy các website vừa tạo lên server, auto deploy mỗi khi có thay đổi trong source code từ Github nhé. Hy vọng mọi người đón đọc

Nguồn tham khảo

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo