Toimii startuje w 2026 roku — ta strona to wczesny podgląd.

Te przewodniki opisują Toimii po uruchomieniu. Panel i rozliczenia nie są jeszcze dostępne — Toimii ruszy w 2026 roku.

Osadź formularz kontaktowy w React, Vue lub Angular

Web components są częścią DOM. Wrzuć tag bezpośrednio do JSX, szablonów Vue lub komponentów Angular — bez żadnego wrappera.

<!-- Dodaj to gdziekolwiek na swojej stronie -->
<script src="https://cdn.toimii.io/components/your-code.js" async></script>
<toimii-contact></toimii-contact>
Czy to naprawdę działa?

Tak. Web components są częścią standardu DOM — React, Vue i Angular renderują nieznane tagi jako zwykły HTML i pozwalają przeglądarce przejąć sterowanie. Żadnego npm install, żadnego komponentu opakowującego, żadnego shima zgodności.

Krok po kroku

1
Załaduj skrypt
Dodaj znacznik script do szablonu HTML aplikacji — public/index.html w CRA, app/layout.tsx z next/script w Next.js lub index.html w Vite. Możesz też załadować go dynamicznie w hooku useEffect / onMounted.
2
Wrzuć własny element
Użyj własnego tagu elementu bezpośrednio w JSX (<toimii-contact />), szablonach Vue (<toimii-contact />) lub szablonach Angular. Przeglądarka rejestruje element po załadowaniu skryptu.
3
Poinformuj framework o elemencie
Użytkownicy TypeScript — zadeklaruj tag w pliku global.d.ts, żeby kompilator go zaakceptował. Użytkownicy Vue — oznacz własne elementy w vite.config.js. Użytkownicy Angular — dodaj CUSTOM_ELEMENTS_SCHEMA. Każda z tych zmian to jedna linia.
4
Zbuduj i uruchom
Uruchom serwer deweloperski, a formularz się wyrenderuje. Żadnego wrappera, żadnego pakietu @types, żadnego dodatkowego etapu budowania.

Częste pułapki

  • W React nie możesz przekazywać złożonych propsów (obiektów, funkcji) jako atrybutów JSX — komponent otrzyma ciąg znaków "[object Object]". Użyj refa + element.config = {...} po zamontowaniu.
  • Strict Mode w React 18+ podwójnie montuje komponenty w trybie deweloperskim. Web components z efektami ubocznymi w connectedCallback mogą uruchamiać się dwukrotnie. Komponenty Toimii obsługują to — ale jeśli piszesz własny wrapper, miej to na uwadze.
  • Vue 3 wymaga oznaczenia własnych elementów, żeby nie próbował rozpoznawać ich jako komponentów Vue. W vite.config.js dodaj compilerOptions.isCustomElement, które pasuje do /^toimii-/.
  • Angular wymaga CUSTOM_ELEMENTS_SCHEMA w tablicy schemas Twojego modułu. Bez tego kompilator zgłosi błąd dla nieznanego tagu.

Często zadawane pytania

Czy potrzebuję komponentu opakowującego React/Vue/Angular?

Nie. Web components są częścią standardu DOM — React, Vue i Angular renderują nieznane tagi jako zwykły HTML i pozwalają przeglądarce przejąć sterowanie. Żadnego pakietu npm, żadnych @types, nic do instalowania.

Jak poinformować TypeScript o własnym elemencie?

Tak. Dodaj to do pliku global.d.ts: declare namespace JSX { interface IntrinsicElements { 'toimii-contact': any } }. Formularz działa bez tego — TypeScript po prostu przestaje narzekać.

Jak przekazywać propsy lub konfigurację?

Przekazuj je jako zwykłe atrybuty HTML. Web components odczytują atrybuty z DOM tak samo, jak React odczytuje propsy z JSX. Dla wartości dynamicznych użyj refa i ustaw właściwości imperatywnie w razie potrzeby.

Czy działa z Next.js, Remix lub SvelteKit?

Tak. W Next.js dodaj znacznik script w app/layout.tsx (za pomocą komponentu next/script) lub w pages/_document.tsx. Własny element renderuje się po stronie klienta — owiń go w granicę "use client", jeśli używasz App Routera.

A co z renderowaniem po stronie serwera?

Własny element renderuje się po stronie klienta, jak każdy web component. SSR emituje tag, przeglądarka rejestruje element po załadowaniu skryptu, następnie pojawia się formularz. Przez chwilę widać puste miejsce — zazwyczaj niezauważalne.

Osadzasz na innej platformie?

Te same dwie linie kodu, szczegółowo omówione dla każdej platformy.

Gotowy, żeby spróbować?

30-dniowy bezpłatny okres próbny. Bez karty kredytowej. Gotowe w kilka minut.

Bez karty kredytowej. Konfiguracja w 2 minuty.