Hướng dẫn Tạo chuỗi HTML dễ dàng với Template String của ES6 trong javaScript

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,829
Được Like
12,688
Tạo chuỗi HTML dễ dàng với Template String của ES6 trong javaScript

Một cách tạo ra chuỗi kết hợp dữ liệu và mã đánh dấu HTML gọn gàng hơn, không cần phải tạo ra nhiều dòng chuỗi, không cần phải cộng chuỗi để nối chuỗi với rất nhiều dấu nháy như trước, không cần phải sử dụng mã ASCII để xuống dòng.

Giờ đây với một tính năng mới còn được gọi là template literals được cập nhật trong bản ECMAScript 6 ta có thể tạo ra mã đánh dấu HTML trong chuỗi như viết trong tài liệu HTML, thao tác với dữ liệu trở nên gọn gàng hơn, dễ nhìn hơn và hợp thời hơn. Ví dụ:
Mã:
const person = {
    name: 'Khuong',
    city: 'Ho Chi Minh'
}
const markup = `
<div>
    <h1>Hello ${person.name}</h1>
    <p class="city">${person.city}</p>
</div>
`;

Nó cũng có thể tạo ra các node elements khi được xét bởi thuộc tính innerHTML vào DOM. Ta hoàn toàn có thể loop các mảng dữ liệu lồng bên trong template string tạo ra một cấu trúc đẹp. Ví dụ:
Mã:
const customers = [
    { name: 'Khuong', city: 'Ho Chi Minh' },
    { name: 'Phuong', city: 'Da Nang' }
];
const markup = `
<ul>
    ${customers.map(customer => `<li>${customer.name} ${customer.city} city</li>`)}
</ul>
`;

Cũng có thể sử dụng các câu điều kiện trong template string. Ví dụ:
Mã:
const markup = `
<div>
    <h1>Hello ${person.name}</h1>
    <p class="city">${person.city ? `${person.city}` : 'empty'}</p>
</div>
`;

Template string trong ES6 là một cải tiến rất thú vị bổ sung một cấu trúc tốt, nhằm nâng cao chất lượng viết code javaScript, giảm dần việc sử dụng các thư viện hay template engine để tạo ra một cấu trúc dễ phát triển và duy trì nhưng không đồng nhất.

Chúc các bạn thành công.


Nguồn: sothichweb.com​
 

Hướng dẫn sử dụng

XenForo 1 XenForo 2
Translate by PVS

Dịch vụ XenForo của VNXF

Mr. Tuấn

Mobile/Zalo: 0988 488 096

Telegram: bluekpro

Email: [email protected]

Nhà Tài Trợ

Mút Xốp Không Gian
pallet Thịnh Phát
Top Bottom