R

ReflexKR

Reflex-Dokumentation

Reflex-Grundlagen zum Anfassen

·

Kursüberblick

1

Klick, und es ändert sich: State und Events

2

Mal da, mal weg: bedingtes Rendering

3

Listen zeichnen: rx.foreach

4

Warum klappt if nicht? Kompilierzeit vs. Laufzeit

5

Schön machen: Komponenten, Props und Styles

6

Apps, Seiten und ein Obstkorb

Reflex-Grundlagen zum Anfassen
Lektion 2

Zeit 0:08–0:13

Mal da, mal weg: bedingtes Rendering

Eingeloggt: „Willkommen“. Nicht eingeloggt: „Bitte einloggen“. Apps müssen oft je nach Zustand etwas anderes anzeigen. In dieser Lektion verwendest du rx.cond, um die Oberfläche abhängig von einem State-Wert zu verändern.

2-1. Die Oberfläche mit rx.cond umschalten (3 Min.)

class LoginState(rx.State):
    logged_in: bool = False

    @rx.event
    def toggle_login(self):
        self.logged_in = not self.logged_in


def show_login():
    return rx.box(
        rx.cond(
            LoginState.logged_in,
            rx.heading("Logged In", as_="h2"),
            rx.heading("Not Logged In", as_="h2"),
        ),
        rx.button("Toggle Login", on_click=LoginState.toggle_login),
    )

localhost:3000

Ausprobieren

Not Logged In

Bei jedem Klick auf Toggle Login wechselt die Überschrift.

rx.cond nimmt drei Argumente entgegen.

PositionArgumentIn diesem Beispiel
1Bedingung (Var)LoginState.logged_in
2Komponente, die angezeigt wird, wenn die Bedingung wahr istÜberschrift „Logged In“
3Komponente, die angezeigt wird, wenn die Bedingung falsch istÜberschrift „Not Logged In“
  • Das dritte Argument ist optional. Schreibst du rx.cond(LoginState.logged_in, rx.text("Welcome!")), erscheint der Text nur im eingeloggten Zustand, andernfalls wird gar nichts angezeigt.
  • Der Handler toggle_login ist ein ganz normaler Event-Handler wie in Lektion 1. Mit not kehrt er wahr und falsch um.

2-2. Aber warum nicht einfach if? (2 Min.)

In Python würdest du wahrscheinlich Folgendes schreiben wollen.

def show_login():
    if LoginState.logged_in:
        return rx.heading("Logged In", as_="h2")
    return rx.heading("Not Logged In", as_="h2")

Dieser Code funktioniert nicht. UI-Funktionen laufen genau einmal, nämlich beim Start der App, und zu diesem Zeitpunkt weiß noch niemand, ob ein Nutzer eingeloggt ist. rx.cond hinterlegt in der Oberfläche stattdessen die Anweisung: „Schau später im Browser auf den Wert und wähle dann aus.“

Woran das genau liegt, klären wir ausführlich in Lektion 4. Für jetzt merkst du dir nur: „Für Verzweigungen im UI-Code abhängig von State-Werten nimmst du rx.cond.“

Übungen

  1. Sorge in show_login dafür, dass auch die Beschriftung des Buttons je nach Zustand zwischen „Log In“ und „Log Out“ wechselt. Tipp: Setz rx.cond(...) an die Stelle des Kinds des Buttons.
  2. rx.cond funktioniert auch für Prop-Werte. Lass die color der Überschrift im eingeloggten Zustand "green" und sonst "gray" sein.

Checkliste zu dieser Lektion

  • Ich kann erklären, wofür die drei Argumente von rx.cond jeweils stehen.
  • Ich weiß, was passiert, wenn ich das dritte Argument weglasse.
  • Ich weiß, dass ich im UI-Code kein if mit State-Werten verwenden darf.

← Zurück

Lektion 1 · Klick, und es ändert sich: State und Events

Weiter →

Lektion 3 · Listen zeichnen: rx.foreach

Über neue Lektionen informiert werden

Wir schicken dir eine E-Mail, wenn dieser Kurs neue Lektionen bekommt oder ein Folgekurs erscheint.

Erhoben: deine E-Mail-Adresse · Zweck: Hinweise auf neue Lektionen oder den Start dieses Kurses · Speicherdauer: bis du die Löschung verlangst. Keine andere Nutzung, keine Weitergabe. Antworte einfach auf eine Benachrichtigung, dann löschen wir sie sofort.

Fragen & Antworten

Frag alles zu dieser Lektion. Fragen aus allen Sprachversionen dieser Seite erscheinen hier gemeinsam.

Wird als reiner Text angezeigt, ohne Links oder Formatierung.

R

ReflexKR

Python und Reflex zum Anfassen. Alle Beispiele wurden mit Reflex 0.10.0 ausgeführt und geprüft.

ReflexKR ist kostenlos und ohne Werbebanner. Wenn es dir geholfen hat, kannst du es mit einem Kaffee unterstützen. ☕ Spendier uns einen Kaffee

Hinweis zu Affiliate-Links
한국어English日本語简体中文EspañolDeutsch

© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0

Built with Reflex