---
title: "Государственное устройство"
description: "Освоение управления состоянием на основе серверной части Reflex."
order: 1
---
# штатов

В Reflex **State** является единственным источником достоверных данных вашего приложения. В отличие от React, где состояние обычно находится на стороне клиента, состояние Reflex находится на сервере, что позволяет вам использовать всю мощь Python для бизнес-логики, сохраняя при этом синхронизацию пользовательского интерфейса.

# Подсостояния и организация

По мере роста вашего приложения размещение всего в одном классе `rx.State` становится неуправляемым и медленным. Reflex позволяет разделить логику на **подсостояния**.

```python
class ThemeState(rx.State):
    is_dark: bool = False

    def toggle_mode(self):
        self.is_dark = not self.is_dark

class AuthState(rx.State):
    user_id: str | None = None

    @rx.var
    def is_authenticated(self) -> bool:
        return self.user_id is not None
```

# Межгосударственная связь

Иногда одному государству необходимо знать о другом. Reflex предоставляет для этого два ключевых асинхронных метода:

## get_state()
Получает весь экземпляр другого состояния. Используйте это, когда вам нужно вызвать методы или изменить несколько переменных в целевом состоянии.

```python
class CartState(rx.State):
    async def checkout(self):
        auth = await self.get_state(AuthState)
        if not auth.is_authenticated:
            return rx.redirect("/login")
        # Proceed with checkout...
```

## get_var_value
Более эффективный способ получить одно значение без загрузки всего объекта целевого состояния.

```python
class AnalyticsState(rx.State):
    async def track_view(self):
        user_id = await self.get_var_value(AuthState.user_id)
        # Track view for user_id...
```