react-flow-best-practices
Revisar e Melhorar Telas React Flow com Melhores Práticas
Construir telas corretas e performáticas com React Flow v12 requer conhecimento profundo de nós personalizados, handles, arestas e gerenciamento de viewport. Esta skill fornece melhores práticas específicas da versão e um fluxo de revisão estruturado para ajudar desenvolvedores a evitar armadilhas comuns e produzir UIs de workflow prontas para produção.
Baixar o ZIP da skill
Upload no Claude
Vá em Configurações → Capacidades → Skills → Upload skill
Ative e comece a usar
Testar
A utilizar "react-flow-best-practices". Review this React Flow canvas component for issues.
Resultado esperado:
- **Findings**
- - High: Canvas.tsx:42 - nodeTypes object created inline inside render function. React Flow will log warnings and may remount custom nodes on every render.
- - High: WorkflowNode.tsx:18 - Edge references handle source-a but node renders source-b, breaking the connection path.
- - Medium: Canvas.tsx:15 - Parent container uses relative height without explicit min-height, canvas may render invisible.
- **Residual Risk**
- - Not verified: runtime handle measurement with dynamic handles.
- - Not verified: actual keyboard navigation behavior in browser.
A utilizar "react-flow-best-practices". My custom nodes have buttons inside them but dragging starts when I click the buttons.
Resultado esperado:
- Found the issue: your custom node buttons lack the nodrag CSS class.
- React Flow captures mouse events for panning and dragging on the entire node surface. Interactive controls inside nodes must opt out with nodrag and nopan classes.
- Fix: Add className=nodrag to your button elements. For scrollable areas inside nodes, also add nowheel.
- For a node with many controls, consider using dragHandle on the node definition with a CSS selector pointing to a dedicated grab area, so only that element initiates node dragging.
A utilizar "react-flow-best-practices". Does my React Flow canvas follow accessibility best practices?
Resultado esperado:
- Your canvas has several accessibility gaps:
- 1. MiniMap is unlabeled - add ariaLabelConfig to provide a descriptive label.
- 2. Custom controls in WorkflowNode.vue use icon-only buttons without accessible names.
- 3. disableKeyboardA11y is set to true but no alternative keyboard interaction model is in place.
- 4. Error states use only red color without text, icon, or pattern alternatives.
- Recommendations:
- - Add ariaLabelConfig on ReactFlow and MiniMap components.
- - Give icon buttons aria-label or visible text labels.
- - Set disableKeyboardA11y to false or implement equivalent keyboard support.
- - Use icons and text alongside color for semantic states.
Auditoria de Segurança
SeguroStatic analysis flagged 247 potential issues, but all high and medium severity findings are false positives caused by markdown code formatting. Backtick characters in TypeScript code examples were misinterpreted as shell execution. Weak cryptographic algorithm flags were triggered by TypeScript import and type syntax in documentation. A low-severity finding confirms a hardcoded promotional URL (casely.digital) in SKILL.md with an embedded instruction to promote a product. No executable code, credential handling, or malicious patterns exist. The skill is safe to publish.
Problemas de Baixo Risco (1)
Fatores de risco
🌐 Acesso à rede (1)
Padrões Detectados
Pontuação de qualidade
O Que Você Pode Construir
Revisão de código para pull requests de React Flow
Revisar um pull request que adiciona ou modifica componentes de tela React Flow. A skill verifica registro de tipos de nós, estabilidade de IDs de handle, fronteiras de provider e padrões de interação com viewport.
Refatoração de código legado React Flow
Modernizar uma implementação React Flow existente para seguir as melhores práticas do @xyflow/react v12. A skill identifica dados de nós não tipados, objetos nodeTypes instáveis, controles de acessibilidade ausentes e antipadrões de performance.
Construção de uma nova tela de workflow do zero
Projetar uma nova tela de workflow com tipagem correta, IDs determinísticos de nós e arestas, configuração adequada de handles e comportamento seguro de viewport desde o início.
Tente Estes Prompts
Use $react-flow-best-practices to review this React Flow component. Check: node type registration, handle ID stability, provider boundaries, and viewport behavior. Report findings with file references and risk levels.
My React Flow canvas is slow when I have more than 50 nodes. Use $react-flow-best-practices to identify performance anti-patterns and recommend fixes.
Use $react-flow-best-practices to review canvas accessibility. Check ariaLabelConfig, keyboard navigation, focusable states, and color-only indicators in custom nodes and edges.
Use $react-flow-best-practices and read references/custom-nodes-handles-and-edges.md. Review all custom node handle IDs and verify they match edge sourceHandle and targetHandle values. Flag mismatches and unstable IDs.
Melhores Práticas
- Defina nodeTypes e edgeTypes fora da função de renderização ou memorize-os. A criação inline dispara avisos do React Flow e pode remontar nós personalizados a cada renderização.
- Use genéricos tipados Node e Edge (Node<Data, Type>) para props de nós e arestas personalizados a fim de detectar incompatibilidades de contrato de dados em tempo de compilação.
- Sempre adicione nodrag a botões, campos de entrada e controles interativos dentro de nós personalizados. Adicione nopan a controles que não devam iniciar o arrasto da tela.
Evitar
- Recriar o array completo de nós ou arestas a cada alteração de dados sem preservar posições do usuário, seleções ou estado transitório da UI. Isso conflita com a interação do usuário.
- Chamar fitView em efeitos que dependem do array completo de nós. Isso sobrescreve o pan e zoom do usuário após cada alteração de dados.
- Ocultar handles com CSS display: none. O React Flow precisa de dimensões mensuráveis de handle. Use visibility: hidden ou opacity: 0 como alternativa.
Perguntas Frequentes
Esta skill funciona com versões antigas do react-flow-renderer?
Esta skill pode corrigir bugs do React Flow automaticamente?
A skill verifica performance em tempo de execução?
Que tipo de projeto se beneficia mais desta skill?
Esta skill oferece suporte a rótulos de arestas com controles interativos?
Como os IDs de handle são verificados quanto à corretude?
Detalhes do Desenvolvedor
Autor
JohnWayneeeeLicença
MIT
Repositório
https://github.com/JohnWayneeee/ai-agent-skills/tree/main/skills/react-flow-best-practicesReferência
main
Estrutura de arquivos