Zum Inhalt springen

Feitio durchsuchen

↵ öffnet das erste↑↓ auswählenEsc schließt

React

Die Komponenten von Feitio für React: dasselbe HTML wie in Astro, die Verhalten verbinden sich von selbst.

Auf dieser Seite

Installieren

Das Paket @feitio/react bringt die Komponenten; CSS, Icons und Illustrationen kommen aus @feitio/core.

npm
npm install @feitio/core @feitio/react

Lade das CSS einmal, oben in der App. Die Schriften kommen mit, in fonts.css, ohne etwas von einer anderen Seite zu laden; wer die Schriften schon selbst ausliefert, lässt diese Datei weg.

React
import '@feitio/core/css/fonts.css';
import '@feitio/core/css/feitio.css';

Verwenden

Jede Komponente hat den Namen und die Props der Astro-Komponente, mit den Namen von React (className, htmlFor). Was in Astro ein benannter Slot ist (logo, footer, do, dont), ist hier eine Prop.

React
import { Button, Field, Inline, Stack, TextInput } from '@feitio/react';

<Stack gap={5}>
  <Field label="Name der Erinnerung" for="nome" hint="Erscheint in der Benachrichtigung">
    <TextInput id="nome" describedBy="nome-hint" />
  </Field>
  <Inline gap={2}>
    <Button variant="primary" type="submit">Erinnerung speichern</Button>
    <Button>Abbrechen</Button>
  </Inline>
</Stack>

Verhalten

Komponenten mit Verhalten verbinden es beim Einhängen selbst: Menu, Notice, Dialog, Switch, SegmentedControl, TimeInput, FilterField, ScrollFade, BackToTop und AppShell. Es gibt nichts aufzurufen.

React
import { useRef } from 'react';
import { Button, Notice, useNotices } from '@feitio/react';

const saved = useRef(null);
const { show } = useNotices();

<Notice ref={saved} status="ok" title="Gespeichert" timeout={5000} hidden />
<Button onClick={() => show(saved.current)}>Speichern</Button>

Icons

Ohne Angabe lesen die Icons das Sprite unter /feitio/icons/sprite.svg: kopiere @feitio/core/icons/sprite.svg dorthin. Liegt es woanders, sag es einmal, um die App herum:

React
import { FeitioProvider } from '@feitio/react';

<FeitioProvider sprite="/assets/sprite.svg">
  <App />
</FeitioProvider>

Dasselbe HTML

Das HTML jeder Komponente wird nur einmal geschrieben, in Astro. React wiederholt dieses HTML, und ein Test sichert es: Jeder Fall wird in beiden gerendert und Attribut für Attribut verglichen. Danach benutzt ein echter Browser die Verhalten von React, mit Maus und Tastatur, und prüft, dass die Seite ohne Unterschied hydriert.

Nach oben