Files
frontend-docs/docs/state-managers/07-mobx.md
2025-03-07 14:17:37 +03:00

56 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
sidebar_position: 7
---
# Mobx
**MobX** — это библиотека для управления состоянием в JavaScript-приложениях, включая React. Она использует концепцию **реактивного программирования**, чтобы автоматически отслеживать изменения состояния и обновлять компоненты, которые зависят от этого состояния. MobX известен своей простотой, минимальным количеством boilerplate-кода и высокой производительностью.
## Основные концепции MobX:
1. **Observable State (наблюдаемое состояние):**
- Состояние в MobX помечается как observable, что позволяет библиотеке автоматически отслеживать его изменения.
2. **Actions (действия):**
- Действия — это функции, которые изменяют состояние. Они помечаются как action.
3. **Computed Values (вычисляемые значения):**
- Это значения, которые автоматически вычисляются на основе observable-состояния. Они помечаются как computed.
4. **Reactions (реакции):**
- Реакции — это функции, которые автоматически выполняются при изменении observable-состояния. Например, обновление UI в React-компонентах.
5. **Автоматическая реактивность:**
- MobX автоматически отслеживает зависимости между observable-состоянием и компонентами, что делает код более декларативным.
## Преимущества MobX:
1. **Простота:**
- Минимальный boilerplate-код и интуитивно понятный API.
2. **Реактивность:**
- Автоматическое отслеживание изменений и обновление компонентов.
3. **Производительность:**
- MobX оптимизирует обновления, минимизируя лишние ререндеры.
4. **Гибкость:**
- Подходит как для простых, так и для сложных сценариев управления состоянием.
5. **Поддержка TypeScript:**
- MobX полностью поддерживает TypeScript.
## Как использовать MobX в React?
1. **Установка**
- Установите MobX и mobx-react-lite (или mobx-react для классовых компонентов)
2. **Создание store**
- Создайте store с использованием MobX
3. **Подключение store к React**
- Используйте observer из mobx-react-lite, чтобы сделать компонент реактивным:
4. **Использование нескольких stores**
- Если у вас несколько stores, можно использовать React Context для их передачи
MobX легко работает с асинхронными операциями. Например, можно добавить загрузку данных.
## Недостатки MobX:
1. **Меньше структурированности:**
- В отличие от Redux, MobX не навязывает строгую структуру, что может привести к неорганизованному коду.
2. **Меньше инструментов для отладки:**
- Хотя MobX имеет DevTools, они менее мощные, чем Redux DevTools.
3. **Кривая обучения:**
- Некоторые концепции (например, реакции) могут быть сложными для новичков.
## Когда использовать MobX?
- Для небольших и средних приложений, где требуется простое и эффективное управление состоянием.
- Если вы хотите избежать boilerplate-кода, характерного для Redux.
- Для приложений с большим количеством реактивных данных.