HTML Template String trong ES6
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 ``
.
Bài viết này được đăng tại [free tuts .net]
let temp = ` Chào mừng bạn đến với freetuts.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 = 'freetuts.net'; let temp = ` Chào mừng bạn đến với ${website} `; console.log(temp);
Kết quả:
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 = [ 'freetuts.net', 'facebook.com', 'google.com' ]; // Loop domains.map(function(domain, key){ console.log(`<h1>${domain}</h1>`); });
Kết quả:
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 : "freetuts.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ả:
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 :)