Senior

Compound Component Pattern (Tabs)

Problem Statement

Thiết kế một bộ component `Tabs` cho phép người dùng chuyển đổi giữa các tab. Yêu cầu sử dụng Compound Component Pattern để đảm bảo tính linh hoạt.

Constraints & Edge Cases

  • Component phải quản lý trạng thái index đang mở (active index).
  • Phải dễ dàng mở rộng để thêm class hoặc style riêng vào từng phần.
  • Tránh 'Prop Drilling' từ component cha xuống các con nằm sâu bên trong.

Complexity

Render: O(n) với n là số lượng tab.
tsx

Common Mistakes

  • Truyền `activeIndex` xuống từng con thông qua `React.Children.map`.
  • Không sử dụng Context API khiến việc mở rộng cấu trúc DOM bên trong trở nên khó khăn.
Challenge 1 of 18
(←/→ to navigate, 1-9 for quick select)