вариант

react-flow-node-ts

microsoft/skills microsoft/skills

Создавайте компоненты узлов React Flow с типами TypeScript, ручками и интеграцией хранилища Zustand для построения пользовательских узлов в визуальных редакторах рабочих процессов.

...Расширить все
1
Обновлено время 13 сентября 2026 г.

React Flow Node

Создание компонентов узлов React Flow в соответствии с установленными шаблонами, с правильной интеграцией типов TypeScript и хранилища.

Быстрый старт

Скопируйте шаблоны из assets/ и замените заполнители:

  • {{NodeName}} → имя компонента в PascalCase (например, VideoNode)
  • {{nodeType}} → идентификатор типа в kebab-case (например, video-node)
  • {{NodeData}} → имя интерфейса данных (например, VideoNodeData)

Шаблоны

  • assets/template.tsx - Компонент узла
  • assets/types.template.ts - Определения TypeScript

Шаблон компонента узла

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>
        {/* Содержимое узла */}
        <handle></handle>

    >
  );
});

Шаблон определения типа

export interface MyNodeData extends Record<string> {
  title: string;
  description?: string;
}

export type MyNode = Node<mynodedata>;
</mynodedata></string>

Шаги интеграции

  1. Добавьте тип в src/frontend/src/types/index.ts
  2. Создайте компонент в src/frontend/src/components/nodes/
  3. Экспортируйте из src/frontend/src/components/nodes/index.ts
  4. Добавьте значения по умолчанию в src/frontend/src/store/app-store.ts
  5. Зарегистрируйте в nodeTypes холста
  6. Добавьте в AddBlockMenu и ConnectMenu
Посмотреть на GitHub
---
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

Все файлы

0 файлов

Установить react-flow-node-ts

Скачайте и извлеките файлы навыков в вашу директорию .claude/skills/.

Скачать ZIP

Клонируйте репозиторий и скопируйте файлы навыка в свой проект.

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

Копировать Копировать
Быстрая настройка: Скопируйте папку навыка в .claude/skills/. Claude автоматически обнаружит и использует этот навык.
Репозиторий microsoft/skills

Похожие навыки

github-code-search
Обновлено время 29 июня 2026 г.
drizzle-orm
Обновлено время 29 июня 2026 г.
clickhouse-io
Обновлено время 29 июня 2026 г.
prisma-client-api
Обновлено время 29 июня 2026 г.
OR