react-flow-node-ts
microsoft/skills
Crea componentes de nodos de React Flow con tipos de TypeScript, manejadores e integración con la tienda Zustand para construir nodos personalizados en editores de flujos visuales.
...Expandir todoNodo de React Flow
Cree componentes de nodos de React Flow siguiendo patrones establecidos con tipos adecuados de TypeScript e integración con la tienda.
Inicio rápido
Copie las plantillas de assets/ y reemplace los marcadores de posición:
{{NodeName}}→ nombre del componente en PascalCase (por ejemplo,VideoNode){{nodeType}}→ identificador de tipo en formato kebab-case (por ejemplo,video-node){{NodeData}}→ nombre de la interfaz de datos (por ejemplo,VideoNodeData)
Plantillas
- assets/template.tsx - Componente del nodo
- assets/types.template.ts - Definiciones de TypeScript
Patrón del componente del nodo
export const MyNode = memo(function MyNode({
id,
data,
selected,
width,
height,
}: MyNodeProps) {
const updateNode = useAppStore((state) => state.updateNode);
const canvasMode = useAppStore((state) => state.canvasMode);
return (
<noderesizer></noderesizer><handle></handle>
{/* Contenido del nodo */}
<handle></handle>
>
);
});
Patrón de definición de tipo
export interface MyNodeData extends Record<string> {
title: string;
description?: string;
}
export type MyNode = Node<mynodedata>;
</mynodedata></string>Pasos de integración
- Agregue el tipo a
src/frontend/src/types/index.ts - Cree el componente en
src/frontend/src/components/nodes/ - Exporte desde
src/frontend/src/components/nodes/index.ts - Agregue valores predeterminados en
src/frontend/src/store/app-store.ts - Registre en
nodeTypesdel lienzo - Agregue a AddBlockMenu y ConnectMenu
---
name: react-flow-node-ts
description: Create React Flow node components with TypeScript types, handles, and Zustand store integration for building custom nodes in visual workflow editors.
license: MIT
---
# React Flow Node
Create React Flow node components following established patterns with proper TypeScript types and store integration.
## Quick Start
Copy templates from [assets/](assets/) and replace placeholders:
- `{{NodeName}}` → PascalCase component name (e.g., `VideoNode`)
- `{{nodeType}}` → kebab-case type identifier (e.g., `video-node`)
- `{{NodeData}}` → Data interface name (e.g., `VideoNodeData`)
## Templates
- [assets/template.tsx](assets/template.tsx) - Node component
- [assets/types.template.ts](assets/types.template.ts) - TypeScript definitions
## Node Component Pattern
```tsx
export const MyNode = memo(function MyNode({
id,
data,
selected,
width,
height,
}: MyNodeProps) {
const updateNode = useAppStore((state) => state.updateNode);
const canvasMode = useAppStore((state) => state.canvasMode);
return (
<>
<NodeResizer isVisible={selected && canvasMode === 'editing'} />
<div className="node-container">
<Handle type="target" position={Position.Top} />
{/* Node content */}
<Handle type="source" position={Position.Bottom} />
</div>
</>
);
});
```
## Type Definition Pattern
```typescript
export interface MyNodeData extends Record<string, unknown> {
title: string;
description?: string;
}
export type MyNode = Node<MyNodeData, 'my-node'>;
```
## Integration Steps
1. Add type to `src/frontend/src/types/index.ts`
2. Create component in `src/frontend/src/components/nodes/`
3. Export from `src/frontend/src/components/nodes/index.ts`
4. Add defaults in `src/frontend/src/store/app-store.ts`
5. Register in canvas `nodeTypes`
6. Add to AddBlockMenu and ConnectMenu
Todos los archivos
0 archivosInstalar react-flow-node-ts
Descarga y extrae los archivos de habilidades en tu directorio .claude/skills/.
Descargar ZIPClona el repositorio y copia los archivos de la habilidad a tu proyecto.
git clone https://github.com/microsoft/skills/tree/main/.github/plugins/azure-sdk-typescript/skills/react-flow-node-ts # Copy SKILL.md to your .claude/skills/ directory
Copiar





Hogar
