06/04/2021, 14:48

HTML Template String trong ES6 - Javascript nâng cao

Trong bài này chúng ta sẽ tìm hiểu về cú pháp cũng như làm một số ví dụ về Template String trong ES6. Trong Laravel có Blade template, trong Phalcon có Volt template, vậy trong Javascript có template nào hay không? Tính từ ES5 trở về trước thì chưa xuất hiện khái niệm template string mà nó chỉ ...

Trong bài này chúng ta sẽ tìm hiểu về cú pháp cũng như làm một số ví dụ về Template String trong ES6.

Trong Laravel có Blade template, trong Phalcon có Volt template, vậy trong Javascript có template nào hay không? Tính từ ES5 trở về trước thì chưa xuất hiện khái niệm template string mà nó chỉ vừa mới thêm vào trong phiên bản ES6, nên đa số các lập trình viên không sử dụng.

1. HTML Template String trong ES6

Template String sẽ thay thế cách nối chuỗi thông thường.

Cấu trúc

Template String được bao bọc bởi cặp dấu ``.

 

let temp = `
    Chào mừng bạn đến với Zaidap.com.net
`;

 

Khai báo tham số

Để khai báo tham số trong chuỗi Template String thì bạn sử dụng cú pháp ${ten_bien} và đặt vào vị trí muốn hiển thị.

 

let temp = `
    Chào mừng bạn đến với ${website}
`;

 

Trong chuỗi Template String nếu có tham số thì bắt buộc trước khi sử dụng ta phải khai báo biến, nếu không sẽ bị lỗi ngay.

 

var website = 'Zaidap.com.net';

let temp = `
    Chào mừng bạn đến với ${website}
`;

console.log(temp);

 

Kết quả:

template string es6 png

2. Lặp dữ liệu và gán vào Template String

Trong những chức năng hiển thị danh sách thì chúng ta sẽ lặp dữ liệu và gán các giá trị vào ở mỗi vòng lặp.

Lặp đơn giản

Ví dụ dưới đây lặp danh sách domain và gán vào template.

 

var domains = [
    'Zaidap.com.net',
    'facebook.com',
    'google.com'
];

// Loop
domains.map(function(domain, key){
    console.log(`<h1>${domain}</h1>`);
});

 

Kết quả:

template string es6 1 png

Lặp phức tạp

Trên là ví dụ lặp một mảng đơn giản, bây giờ ta sẽ lặp môt mảng chứa các đối tượng vì trong thực tế khi bạn lấy dữ liệu từ database thì nó sẽ trả về một mảng các record.

 

var domains = [
    {
        domain : "Zaidap.com.net",
        author: "Nguyen Van Cuong"
    },
    {
        domain : "google.com",
        author: "Sergey Brin"
    }
];

// Loop
domains.map(function(domain, key){
    var tmpl = `
        <div>
            <h1>${domain.domain}</h1>
            <h2>${domain.author}</h2>
        </div>
    `;
    console.log(tmpl);
});

 

Kết quả:

template string es6 2 png

Thật là vi diệu :) Vậy là từ nay không còn phải nối chuỗi nữa nhé.

3. Lời kết

Khi các bạn xây dựng các ứng dụng Ajax thì Ajax sẽ trả kết quả về là một mảng các Object (JSON), lúc này bạn sẽ phải lặp và nối chuỗi nhìn rất lộn xộn, vì  vậy ứng dụng Template String vào thì code sẽ rất là rõ ràng.

ES6 quá tuyệt vời phải không các bạn, không biết sau này ES7 ra đời sẽ còn nhiều thứ gì hấp dẫn hơn nữa :)

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0