xStore.utils

Hàm tiện ích chạy cục bộ, không gọi máy chủ: định dạng tiền, định dạng ngày và giảm nhịp gọi.

Phương thức

Phương thức Cú pháp Mô tả Từ phiên bản
formatCurrency xStore.utils.formatCurrency(amount, locale = 'vi-VN', currency = 'VND'): string Định dạng số tiền theo chuẩn địa phương. 1.0
formatDate xStore.utils.formatDate(isoString, locale = 'vi-VN'): string Định dạng chuỗi ngày ISO theo chuẩn địa phương (mặc định vi-VN). TỪ 2.1: chuỗi ISO KHÔNG có hậu tố múi giờ được hiểu là UTC và tự thêm Z trước khi chuyển đổi. Bản cũ đưa thẳng vào new Date(), nên trình duyệt hiểu là giờ ĐỊA PHƯƠNG và ngày bài viết hiển thị lệch 7 tiếng ở Việt Nam. Chuỗi đã có Z hoặc +07:00 thì giữ nguyên. 1.0
debounce xStore.utils.debounce(fn, ms): (...args) => void Bọc một hàm để nó chỉ chạy sau khi ngừng gọi trong ms mili-giây — dùng cho ô tìm kiếm, nếu không mỗi phím gõ là một lần gọi máy chủ. Trả về hàm mới, chạy cục bộ, không Promise. 2.1

Ví dụ đầy đủ

<script>
  // Ba hàm này chạy cục bộ và trả kết quả NGAY — không Promise, không await.
  // Dùng được thoải mái trong vòng lặp dựng giao diện.
  const items = [
    { title: 'Áo thun', price: 249000, created_at: '2026-08-13T02:15:00' },
    { title: 'Quần jean', price: 1234567, created_at: '2026-08-12T09:00:00' },
  ];

  document.getElementById('list').innerHTML = items.map((item) => `
    <li>
      <span>${item.title}</span>
      <span>${xStore.utils.formatCurrency(item.price)}</span>
      <small>${xStore.utils.formatDate(item.created_at)}</small>
    </li>
  `).join('');

  // formatCurrency(1234567) → "1.234.567 ₫"
  // formatDate('2026-08-13T02:15:00') → "13 tháng 8, 2026"
  //   API trả chuỗi ISO KHÔNG có hậu tố Z nhưng giá trị là UTC; formatDate
  //   tự thêm Z trước khi chuyển đổi (xem ghi chú ở bảng bên trên).

  // debounce: chỉ chạy sau khi khách ngừng gõ 250ms.
  const onType = xStore.utils.debounce((e) => console.log(e.target.value), 250);
  document.getElementById('search-input').addEventListener('input', onType);
</script>

Thư viện gọi tới /api/... trên chính tên miền cửa hàng, nên không cần khai báo địa chỉ máy chủ ở bất kỳ đâu.

Xem thêm Sự kiện để giao diện tự cập nhật sau mỗi thao tác.