WU / DOCSMICROFRONTENDS UNIVERSAIS
PT

WU vs Module Federation e single-spa

Avalie WU como alternativa para compor microfrontends: compare carregamento de módulos, ciclo de vida, comunicação e responsabilidades do shell.

Qual problema você está resolvendo

Se procura uma alternativa ao Module Federation, diferencie compartilhar módulos de coordenar aplicações completas. WU organiza aplicações por registro, carregamento e ciclo de vida, e oferece store, eventos e contratos. A escolha depende de onde você quer colocar a fronteira de integração.

A comparação a seguir descreve WU 4.0.0, o conceito de Module Federation documentado pelo webpack e o modelo de aplicações do single-spa. Não é um teste de desempenho nem uma comparação de todos os plugins dos seus ecossistemas.

Comparação de responsabilidades

Decisão WU Framework Module Federation single-spa
Unidade de integração Aplicação com manifest e ciclo de vida Módulos expostos e consumidos entre builds Aplicação com carregamento, ativação e ciclo de vida
Montagem da interface O host solicita mount/unmount ao WU O consumidor decide como renderizar o módulo O runtime ativa e monta as aplicações registradas
Dependências compartilhadas Configuração explícita do build e do carregamento de WU Configuração de módulos compartilhados e versões Decisão do ambiente de carregamento e das aplicações
Dados entre aplicações Store, eventos e contratos do runtime Contrato definido pelos módulos e seus consumidores Contrato definido pelas aplicações e utilitários compartilhados

Fontes: Module Federation no webpack, modelo do single-spa e APIs de WU. Consulte a documentação da implementação específica se usar outro plugin de federação.

Quando avaliar WU como alternativa

Avalie WU quando quiser compor aplicações com um contrato comum de montagem e precisar de estado, eventos ou serviços entre elas. O critério é a composição e a comunicação, independentemente da tecnologia de cada aplicação. Comece por uma capacidade com limites claros e verifique a integração usando o guia de microfrontends.

O pacote inclui adapters para React, Vue, Angular, Svelte, Preact, Solid, Lit, Vanilla, Alpine, Qwik, Stencil, HTMX e Stimulus. Consulte os contratos na referência de adapters.

Para outra tecnologia, registre mount e unmount com wu.define, ou crie um adapter com createWuAdapter. O contrato comum permite conectar aplicações com o mesmo framework ou com frameworks diferentes.

Vale avaliar Module Federation quando você precisa consumir módulos de outros builds e gerenciar dependências compartilhadas nesse nível. Vale avaliar single-spa quando busca aplicações com regras de ativação e lifecycles em um root config. Nenhuma escolha elimina o projeto de contratos nem a operação dos deploys.

O que muda na migração

WU não interpreta automaticamente uma configuração de remotes do Module Federation nem um root config do single-spa. Identifique cada entrada, crie seu manifest, conecte o renderer ao ciclo de vida e mova as decisões globais para o shell. Defina como traduzirá os contratos de comunicação existentes e como voltará à versão anterior se uma entrega falhar.

O shell mantém as rotas globais; WU não expõe um router público. Também não presuma que executar módulos no mesmo contexto JavaScript cria uma fronteira de segurança. Essas responsabilidades são explicadas em arquitetura.

Um teste para decidir

Compare a mesma capacidade no seu ambiente: carregamento inicial, mudança de rota, atualização de dados, desmontagem, falha de rede e uma nova versão de dependência. Registre o tamanho transferido e os tempos com o mesmo navegador e condições de cache. Use o exemplo de comunicação e a saída de produção como ponto de partida para WU.

CONSTRUA O WU CONOSCO

Encontrou um bug? Tem uma ideia?

Sua experiência melhora o WU. Conte o que falhou ou ajude a manter seu desenvolvimento.