create-react-component
Create a new React component following project best practices
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Creating a React Component
This skill guides the creation of new React components to ensure consistency, maintainability, and quality across the project.
1. Analysis & Preparation
- Identify Responsibility: Clearly define what the component does. Is it a UI primitive (atom) or a complex feature (organism)?
-
Determine Location:
- Shared UI components:
src/components/ui/orsrc/components/common/ - Feature-specific components:
src/features/<FeatureName>/components/
- Shared UI components:
- Check Existing: Verify if a similar component already exists to avoid duplication.
2. File Structure
Create a directory with the PascalCase name of the component.
Example: src/components/ui/MyComponent
The directory should contain:
-
MyComponent.tsx: The main component implementation. -
index.ts: Re-export the component (e.g.,export * from './MyComponent';). -
(Optional) MyComponent.cssorstyles.ts: For styling, depending on the project's styling strategy (e.g., CSS Modules, Styled Components, Tailwind).
3. Implementation Guidelines (The "Gold Standard")
Setup
- Imports: Group imports: React/Project dependencies -> Local components -> Styles/Utils.
-
Types: Always define a
Propsinterface. Export it if it's likely to be used elsewhere.
Coding
-
Function Component: Use
const ComponentName = ...orfunction ComponentName(...). - Props Destructuring: Destructure props in the function signature for readability.
- Clean Code: Keep the render logic clean. Extract complex logic into custom hooks if proper.
- Accessibility (a11y): Ensure interactive elements have accessible names (aria-label) and keyboard navigation support.
Example Template (MyComponent.tsx)
import React from 'react';
// Define Props interface
export interface MyComponentProps {
title: string;
isActive?: boolean;
onClick: () => void;
}
/**
* MyComponent
* Description of what this component does.
*/
export const MyComponent: React.FC<MyComponentProps> = ({
title,
isActive = false,
onClick,
}) => {
return (
<div
role="button"
tabIndex={0}
onClick={onClick}
onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
onClick();
}
}}
className={`my-component ${isActive ? 'active' : ''}`}
>
<h3>{title}</h3>
</div>
);
};
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-26
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!