Component Structure
When generating React/TSX components, follow these structural points to maintain information focus under Primacy/Recency:
- •Decompose logically related UI modules into independent sub-components, ensuring each handles a single responsibility.
- •Declare all sub-components as
constbefore the main component, making dependency order clear at a glance. - •Keep each sub-component within 30-40 lines, continue decomposing to finer granularity if needed.
- •Use semantic naming (e.g.,
VideoOverlay,ActionButton,CreatorInfo) for quick retrieval and reuse. - •Use Props to clarify data and event flow, let main component only handle assembly and state dispatch.
- •Regularly review if sub-components can be extracted to shared directory to avoid duplicate implementations.
Reference example:
tsx
// Sub-components defined first
const PlayOverlay = ({ isPlaying, onToggle }: PlayOverlayProps) => (
<div className="...">...</div>
)
const ActionButtons = ({ likes, comments }: ActionButtonsProps) => (
<div className="...">...</div>
)
// Main component uses sub-components
export function VideoFeed({ videos }: VideoFeedProps) {
return (
<div>
{videos.map(v => (
<PlayOverlay ... />
<ActionButtons ... />
))}
</div>
)
}
Final confirmation: Main component handles orchestration, sub-components handle details, achieving a stable pipeline of "decompose first, then compose".