Skip to content

CPageHeader

Dải tiêu đề đặt ở đầu mỗi trang: breadcrumb, tiêu đề, dòng phụ và nhóm hành động của cả trang.

Dùng khi: mở đầu một trang nội dung — danh sách, chi tiết, form, dashboard.

Không dùng khi: đặt tiêu đề cho một khối bên trong trang — dùng title của CCard hoặc CTable.

Dòng phụ nói phạm vi dữ liệu đang xem ("47 đơn trong tháng 9", "Chi nhánh Hà Nội") — đừng lặp lại tiêu đề bằng từ khác.

Component không phụ thuộc router: item có to chỉ phát sự kiện navigate, trang tự quyết định điều hướng. Trong app Nuxt gần như luôn là:

vue
<CPageHeader :breadcrumb="breadcrumb" @navigate="navigateTo" />

Quên bind @navigate thì bấm breadcrumb không có gì xảy ra. Mục cuối là trang hiện tại nên khôngto.

Nhóm hành động

Chỉ đặt vào #extra những hành động tác động lên cả trang. Hành động trên một dòng dữ liệu thuộc về cột hành động của bảng; hành động trên một khối thuộc về header của khối đó.

Chặn theo quyền bằng v-can — xem Chặn theo quyền:

vue
<CButton v-can="'/orders/create'" variant="primary">Tạo đơn</CButton>

Tiêu đề tuỳ biến

API

Props

TênKiểuMặc địnhMô tả
titlestringundefinedTiêu đề trang; slot #title để tuỳ biến.
subTitlestringundefinedDòng phụ dưới tiêu đề.
breadcrumbBreadcrumbRoute[][]Đường dẫn breadcrumb; item có `to` sẽ phát sự kiện navigate khi bấm.

Sự kiện

TênPayloadMô tả
navigate[to: string]Bấm một breadcrumb có `to` — router-agnostic, trang tự gọi navigateTo.

Slot

TênProps của slotMô tả
#titleanyThay phần tiêu đề (mặc định hiện `title`).
#extraanyNút hành động bên phải tiêu đề.

Giao diện

Nền --tasco-color-surface, gạch chân --tasco-color-border, tiêu đề dùng --tasco-font-family-heading cỡ 20px, dòng phụ --tasco-color-text-muted. Class BEM: c-page-header, __crumbs, __titles, __title, __subtitle, __extra.

Khối co giãn theo chiều ngang: khi hẹp, nhóm hành động tự xuống dòng dưới tiêu đề.

Khả năng tiếp cận

  • Tiêu đề mặc định render bằng <h1> — mỗi trang chỉ nên có một CPageHeader.
  • Dùng slot #title thì tự đặt heading thật bên trong (như demo), đừng để trang mất mốc <h1>.
  • Breadcrumb là danh sách liên kết thật: Tab tới được, Enter kích hoạt. Sự kiện navigate đã chặn hành vi mặc định của thẻ <a> nên không tải lại trang.

Lưu ý

  • Breadcrumb bám cấu trúc nghiệp vụ, không nhất thiết bám cây thư mục route.
  • Tiêu đề trang chi tiết nên là định danh người dùng nhận ra (mã đơn, tên khách hàng), không phải "Chi tiết".
  • Đừng nhét bộ lọc vào #extra — bộ lọc thuộc về toolbar của bảng.

Liên quan

  • CCard — tiêu đề cho một khối.
  • CTable — toolbar và tiêu đề của bảng.
  • Khung giao diện — vị trí của dải tiêu đề trong khung app.