×

Cài đặt thư viện Pug trong JavaScript

Giới thiệu về Pug

Pug, trước đây được biết đến với tên gọi Jade, là một bộ tiền xử lý HTML phổ biến. Nó cung cấp cú pháp đơn giản và dễ đọc giúp việc viết mã HTML trở nên dễ dàng và ngắn gọn hơn. Với Pug, bạn có thể tạo ra giao diện người dùng nhanh chóng hơn và thậm chí có thể tận dụng các tính năng mạnh mẽ như mixin, inheritance, và nhiều hơn nữa.

Tại sao nên sử dụng Pug?

Cú pháp ngắn gọn và dễ đọc

Cái hay của Pug nằm ở chỗ nó loại bỏ các tag mở và đóng lặp đi lặp lại trong HTML truyền thống. Điều này giúp mã nguồn trở nên sạch sẽ và dễ đọc hơn.

Khả năng tái sử dụng mã

Pug cung cấp các tính năng như mixin và block giúp bạn tái sử dụng các phần của giao diện mà không phải viết lại từ đầu.

Tính năng mở rộng và dễ tích hợp

Pug dễ dàng tích hợp với các framework phổ biến như Express trong ứng dụng Node.js, giúp việc phát triển và mở rộng ứng dụng trở nên thuận lợi hơn.

Cài đặt Pug

Yêu cầu hệ thống

Trước khi bắt đầu cài đặt Pug, bạn cần cài đặt Node.js và npm (Node Package Manager) trên hệ thống của mình. Để kiểm tra xem Node.js và npm đã được cài đặt hay chưa, bạn có thể chạy các lệnh sau trong terminal:

node -v
npm -v

Cài đặt Node.js và npm

Nếu chưa cài đặt, bạn có thể tải Node.js về từ trang web chính thức (https://nodejs.org/) và cài đặt theo hướng dẫn cho hệ điều hành của bạn.

Sử dụng npm để cài đặt Pug

Sau khi đã cài đặt Node.js và npm, bạn có thể cài đặt Pug thông qua npm bằng cách chạy lệnh:

npm install pug

Sử dụng Pug trong dự án Node.js

Thiết lập dự án Node.js

Bắt đầu bằng việc tạo một thư mục mới cho dự án của bạn và khởi tạo nó bằng npm:

mkdir my-pug-project
cd my-pug-project
npm init -y

Cài đặt Express

Để tạo một server và sử dụng Pug làm engine template, bạn cần cài đặt Express:

npm install express

Cấu hình Express và Pug

Sau khi cài đặt Express, bạn cần tạo một file app.js để cấu hình server và chỉ định Pug làm template engine:

const express = require('express');
const app = express();
const path = require('path');

// Thiết lập template engine Pug
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

// Tạo một route
app.get('/', (req, res) => {
  res.render('index', { title: 'Welcome', message: 'Hello, world!' });
});

// Khởi động server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

Tạo file template Pug

Bây giờ, tạo thư mục views trong thư mục dự án và tạo một file index.pug:

mkdir views
touch views/index.pug

Trong file index.pug, thêm nội dung HTML bằng cú pháp Pug:

doctype html
html(lang="en")
  head
    meta(charset="UTF-8")
    title= title
  body
    h1= message

Chạy và kiểm tra server

Sau khi hoàn tất các bước trên, bạn có thể chạy server bằng lệnh:

node app.js

Mở trình duyệt và truy cập địa chỉ http://localhost:3000 để xem kết quả. Nếu mọi thứ đã được cấu hình đúng, bạn sẽ thấy trang web hiển thị tiêu đề "Welcome" và thông điệp "Hello, world!".

Các tính năng nâng cao

Sử dụng biến và truyền tham số

Pug cho phép bạn truyền biến từ server vào template để sử dụng trong việc hiển thị nội dung. Bạn có thể truyền các giá trị động và hiển thị chúng trong template:

app.get('/user/:name', (req, res) => {
  res.render('user', { name: req.params.name });
});

Trong file user.pug, bạn có thể truy cập biến name và hiển thị nó:

doctype html
html(lang="en")
  head
    meta(charset="UTF-8")
    title User Page
  body
    h1 Hello, #{name}!

Mixins

Mixins trong Pug cho phép bạn định nghĩa các đoạn mã tái sử dụng được áp dụng nhiều lần trong template. Điều này giúp giảm thiểu việc lặp lại mã và làm cho template trở nên ngắn gọn và dễ hiểu hơn.

//- Định nghĩa mixin
mixin hello(name)
  h1 Hello #{name}!

//- Sử dụng mixin
doctype html
html(lang="en")
  head
    meta(charset="UTF-8")
    title Mixins Example
  body
    +hello('Alice')
    +hello('Bob')
    +hello('Charlie')

Kế thừa (Inheritance)

Pug hỗ trợ việc kế thừa template, cho phép bạn tạo ra các template cơ sở và mở rộng chúng trong các template con. Điều này hữu ích trong việc duy trì cấu trúc HTML nhất quán và tái sử dụng mã.

Tạo một template cơ sở trong layout.pug:

doctype html
html(lang="en")
  head
    meta(charset="UTF-8")
    title= title
  body
    block content

Trong template con, mở rộng template cơ sở và định nghĩa block nội dung cụ thể:

extends layout

block content
  h1 Page Title
  p This is the content of the page.

Tích hợp với các công cụ và framework khác

Pug có thể dễ dàng tích hợp với nhiều công cụ và framework khác nhau như Gulp, Webpack, và Vue.js để cung cấp trải nghiệm phát triển toàn diện và hiệu quả.

Sử dụng Gulp để xử lý Pug

Đầu tiên, cài đặt Gulp và plugin Gulp-Pug:

npm install gulp gulp-pug

Tiếp theo, tạo file gulpfile.js để cấu hình Gulp:

const gulp = require('gulp');
const pug = require('gulp-pug');

gulp.task('pug', () => {
  return gulp.src('src/views/*.pug')
    .pipe(pug())
    .pipe(gulp.dest('dist'));
});

gulp.task('watch', () => {
  gulp.watch('src/views/*.pug', gulp.series('pug'));
});

gulp.task('default', gulp.series('pug', 'watch'));

Chạy Gulp để theo dõi và biên dịch file Pug:

gulp

Tích hợp với Vue.js

Để sử dụng Pug trong các component của Vue.js, bạn chỉ cần cài đặt bộ tiền xử lý Pug:

npm install pug-plain-loader

Sau đó, bạn có thể sử dụng cú pháp Pug trong các component của Vue.js:

<template lang="pug">
  div
    h1 {{ title }}
    p This is a paragraph.
</template>

<script>
export default {
  data() {
    return {
      title: 'Hello, Vue.js with Pug!'
    };
  }
};
</script>

Kết luận

Pug là một công cụ mạnh mẽ giúp đơn giản hóa việc tạo mã HTML thông qua cú pháp dễ đọc và các tính năng mở rộng như mixin và inheritance. Việc cài đặt và sử dụng Pug trong các dự án Node.js và các công cụ phát triển hiện đại khác giúp tối ưu hóa quy trình làm việc và tạo ra các ứng dụng web nhanh chóng và hiệu quả. Hy vọng qua bài viết này, bạn đã có cái nhìn tổng quan và hiểu rõ về cách cài đặt, sử dụng và tích hợp Pug trong các dự án của mình.

Comments