Skip to content

Tuvix.js Nedir?

Tuvix.js, bağımsız olarak dağıtılabilir parçalardan oluşan ölçeklenebilir frontend uygulamaları oluşturmak için Lightweight, framework'ten bağımsız bir mikro frontend Orchestrator'üdür.

Sorun

Frontend'ler büyüdükçe, yekpare single-page uygulamaları şöyle hale gelir:

  • Birden fazla ekip arasında ölçeklendirilmesi zor
  • Yavaş build ve dağıtım - bir değişiklik her şeyi yeniden build eder
  • Tek bir framework veya versiyona kilitli
  • İzole olarak test edilmesi ve anlaşılması zor

Çözüm: Mikro Frontend'ler

Mikro frontend'ler, microservice ilkelerini frontend'e uygular. Her mikro uygulama:

  • Bağımsız olarak geliştirilir - ayrı kod tabanı, ayrı ekip
  • Bağımsız olarak dağıtılır - kendi CI/CD pipeline'ı
  • Framework bağımsızdır - bir ekip React, diğeri Vue, diğeri Svelte kullanır

Tuvix.js, tüm mikro uygulamaları çalışma zamanında yükleyen, bağlayan ve koordine eden shell'i sağlar.

Mimari

┌─────────────────────────────────────────────┐
│              Tuvix.js Shell                 │
│                                             │
│  ┌────────────┐  ┌──────────┐  ┌────────┐  │
│  │Orchestrator│  │  Router  │  │ Loader │  │
│  └────────────┘  └──────────┘  └────────┘  │
│                                             │
│  ┌─────────┐  ┌────────┐  ┌──────────────┐ │
│  │  React  │  │  Vue   │  │   Angular    │ │
│  │  Mikro  │  │  Mikro │  │    Mikro     │ │
│  │  Uygul. │  │  Uygul.│  │    Uygul.    │ │
│  └─────────┘  └────────┘  └──────────────┘ │
└─────────────────────────────────────────────┘

Temel Kavramlar

KavramAçıklama
ShellAna uygulama - mikro uygulamaları yükler ve koordine eder
OrchestratorMikro uygulama kaydını ve lifecycle'ı yöneten çekirdek motor
Mikro UygulamaBağımsız olarak dağıtılan bir frontend uygulaması
EntryMikro uygulamanın JavaScript paketi URL'si
LifecycleHer mikro uygulamanın uyguladığı mount, unmount, update hook'ları
Event BusMikro uygulamalar arasındaki yazılı yayın/abone köprüsü
SandboxÇatışmaları önlemek için CSS + JS izolasyonu

Karşılaştırma

ÖzellikTuvix.jssingle-spaModule Federation
Sıfır çalışma zamanı bağımlılığı
Yerleşik Event Bus
CSS Sandbox
SSR desteğiKısmi
TypeScript-firstKısmi
Framework bağlamalarıReact, Vue, Svelte, AngularReact, VueHerhangi

Sonraki Adım

Başlarken