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.