Code Monkey home page Code Monkey logo

microfroentend-shared-state's Introduction

Microfrontend Shared State

Este repositório contém um exemplo simples de compartilhamento de estado em microfrontends, utilizando as tecnologias Vite e Module Federation e React.

Funcionamento

Captura de Tela 2023-04-17 às 20 51 41

Gravacao.de.Tela.2023-04-17.as.21.08.10.mov

Visão geral

O objetivo deste projeto é demonstrar como é possível compartilhar o estado entre microfrontends de forma desacoplada, utilizando a técnica de Module Federation. Module Federation é um recurso disponível no Webpack que permite que módulos sejam compartilhados entre diferentes aplicações em tempo de execução.

O projeto contém quatro microfrontends sendo eles:

  • content: Um Microfrotend que exponhe para uso um state e um App Content

  • Footer: Um Microfrotend que exponhe para uso um App Footer e que consome remotamente o state exposto pelo content

  • Header: Um Microfrotend que exponhe para uso um App Header e que consome remotamente o state exposto pelo content

  • Main-App: um Microfrotend container que por sua vez é responsável por receber e renderizar os MCF acima

Stack

  • React como lib de contrução de UI Link-Doc
  • Zustand como lib para gerenciamente de stado global Link-Doc
  • Vite como empacotador dos MFC(content, Footer e Header) Link-Doc
  • Webpack como empacotador do MFC MainApp Link-Doc
  • vite-plugin-federation como plugin do vite para suporte ao module federation nativo do webpack Link-Doc
  • module federation como gerenciador dos builds distribuidos Link-Doc

Executando o projeto

  1. Clone este repositório em sua máquina:
git clone https://github.com/Lucasico/Microfroentend-shared-state.git
  1. Entre dentro de cada pasta (content, header e footer) e instale as dependencias com o comando:
pnpm install
  1. Instale as dependencias do Main-App com o comando:
yarn install
  1. Entre dentro de cada pasta (content, header e footer) e gere o build e rode o preview:
pnpm build && pnpm preview
  1. Por fim basta agora executar o main-host com o comando:
yarn start

e a magica acontecera 😎🫣

Contribuindo

Para contribuir com este repositório, siga os seguintes passos:

  1. Crie um fork deste repositório em sua conta no GitHub.

  2. Crie uma nova branch para suas alterações:

git checkout -b minha-nova-feature
  1. Faça as alterações desejadas no código.

  2. Faça o commit de suas alterações:

git commit -m "Adiciona nova funcionalidade"
  1. Envie as alterações para seu repositório no GitHub:
git push origin minha-nova-feature
  1. Abra um pull request para o repositório original.

Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais informações.

Autor

Lucasico, vulgo eu kkk 😅

microfroentend-shared-state's People

Contributors

lucasico avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.