Tuvix.js monte des micro apps React, Vue, Svelte, Angular et JavaScript vanilla dans une seule page hôte. Le routage, un event bus, l'isolation et le rendu côté serveur sont des paquets séparés, que vous ajoutez quand vous en avez besoin.
npx create-tuvix-appimport { createOrchestrator } from 'tuvix.js';const orchestrator = createOrchestrator({ router: { mode: 'history', routes: [ { path: '/dashboard/*', app: 'dashboard' }, { path: '/settings/*', app: 'settings' }, ], },});orchestrator.register({ name: 'dashboard', entry: 'https://cdn.example.com/dashboard/main.js', container: '#main-content', activeWhen: '/dashboard/*',});orchestrator.start();/dashboard/overviewname: 'dashboard'activeWhen: '/dashboard/*'name: 'catalog'activeWhen: '/shop/*'name: 'checkout'activeWhen: '/checkout/*'name: 'settings'activeWhen: '/settings/*'@tuvix.js/event-busHuit briques de base. Installez le paquet tout-en-un tuvix.js pour obtenir les cinq paquets principaux, ou ajoutez des paquets individuels à mesure que votre shell grandit.
Exécutez des micro apps React, Vue, Svelte, Angular et JavaScript vanilla côte à côte dans un même shell.
Guide des micro appsChaque paquet ne dépend que d'autres paquets @tuvix.js. Vous installez ceux que vous importez.
Tous les paquetsLe routeur monte et démonte les apps quand l'URL change, en mode history ou hash.
@tuvix.js/routerLes apps publient des événements typés et s'y abonnent sans partager de variables globales.
@tuvix.js/event-busLe shadow DOM garde les styles de chaque app dans son conteneur. JsSandbox exécute un script sur une window Proxy que vous pouvez jeter.
@tuvix.js/sandboxLe loader récupère les bundles des apps à la demande, les met en cache et relance les chargements qui échouent.
@tuvix.js/loaderUn panneau intégré à la page liste les apps enregistrées, la route active et le trafic de l'event bus.
@tuvix.js/devtoolsRendez les micro apps côté serveur et assemblez leur HTML dans le template du shell, sous forme de chaîne ou de flux.
@tuvix.js/serverChaque adaptateur transforme un composant en micro app que l'orchestrateur peut monter, mettre à jour et démonter.
createReactMicroApp enveloppe un composant. useTuvixProps et useTuvixBus lisent les props et les événements.
npm i @tuvix.js/reactcreateVueMicroApp monte une app Vue 3, avec des composables pour les props et l'event bus.
npm i @tuvix.js/vuecreateSvelteMicroApp monte des composants Svelte 3, 4 et 5.
npm i @tuvix.js/sveltecreateAngularMicroApp fait le bootstrap d'un composant Angular 15+ dans son conteneur.
npm i @tuvix.js/angulardefineMicroApp fournit des hooks mount, unmount et update en JavaScript pur.
npm i @tuvix.js/coreCommencez par le paquet tout-en-un. Passez aux paquets individuels quand vous voulez une installation plus légère.
Paquet tout-en-un avec core, router, event bus, loader et sandbox.
L'orchestrateur. Enregistre les micro apps et exécute leurs cycles de vie.
Active les micro apps selon l'URL, en mode history ou hash.
Publish/subscribe typé entre micro apps.
Charge les bundles des apps à la demande, avec mise en cache et nouvelles tentatives.
Isolation CSS par le Shadow DOM, isolation JS par Proxy.
Composition côté serveur et streaming pour la page hôte.
Charge des micro apps depuis des remotes Webpack Module Federation.
Panneau de débogage intégré à la page pour les apps, les routes et les événements.
Adaptateur React, hooks et helpers de rendu côté serveur.
Adaptateur Vue 3, composables et helpers de rendu côté serveur.
Adaptateur Svelte avec prise en charge du rendu côté serveur.
Adaptateur Angular avec prise en charge du rendu côté serveur.
Plugin Vite qui place le CSS des îlots et les liens modulepreload dans le head SSR, pour que les micro apps rendues côté serveur soient stylées dès le premier affichage (first paint).
Génère un nouveau projet avec un hôte et une micro app depuis la ligne de commande.