# Facade API

> Узнайте, как добавить Facade API в приложение, чтобы упростить работу с Web SDK.

- Human documentation: [https://docs.univer.ai/ru-RU/guides/sheets/getting-started/facade](https://docs.univer.ai/ru-RU/guides/sheets/getting-started/facade)

- Agent Markdown: [https://docs.univer.ai/ru-RU/guides/sheets/getting-started/facade.md](https://docs.univer.ai/ru-RU/guides/sheets/getting-started/facade.md)

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

- Source: [sheets/getting-started/facade.ru-RU.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/sheets/getting-started/facade.ru-RU.mdx)

---

Архитектура Univer позволяет решать сложные задачи, но из-за этого сама она тоже довольно сложна, что может затруднить работу с ней. Поэтому мы предлагаем более простой и удобный Facade API.

В этой главе подробно описано, как добавить Facade API в приложение. В следующей главе, «Возможности», перечислены основные методы Facade API для каждой возможности. Полный список методов Facade API приведён в справочнике API соответствующего плагина.

> [!WARNING: Обратите внимание]
> Некоторые методы Facade API работают асинхронно. В особенности это касается методов, которые изменяют данные: зачастую они возвращают Promise. Если вам нужно получить данные сразу после их изменения, используйте `await` или `.then()`, иначе результат может оказаться неожиданным. Чтобы узнать, какие именно методы API возвращают Promise, обратитесь к соответствующему справочнику API.

## Интеграция Facade API в режиме плагинов

### Установка

При установке Univer в режиме плагинов реализация Facade API распределена между разными плагинами и подключается к глобальному корневому объекту Facade API. Поэтому для плагинов, предоставляющих Facade API, можно по мере необходимости импортировать соответствующие реализации.

```typescript
import { FUniver } from '@univerjs/core/facade'
import '@univerjs/ui/facade'
import '@univerjs/docs-ui/facade'
```

> [!WARNING: Обратите внимание]
> Пакет facade входит не во все плагины. Это будет указано в документации каждой возможности.

### Использование

Facade API служит оболочкой для экземпляра Univer, поэтому после создания экземпляра Univer его необходимо обернуть с помощью `FUniver`:

```typescript
import { FUniver } from '@univerjs/core/facade'

const univerAPI = FUniver.newAPI(univer)
```

## Интеграция Facade API в режиме предустановок

Если вы интегрируете Univer в режиме предустановок, Facade API для включённых возможностей импортируется автоматически. При создании экземпляра Univer возвращается соответствующий экземпляр Facade API — `univerAPI`, который можно использовать сразу.

## Важные замечания

Не все методы Facade API можно вызывать сразу: некоторые из них должны использоваться на определённых этапах жизненного цикла. Если метод не срабатывает при немедленном вызове, выберите подходящий этап жизненного цикла следующим образом:

```typescript
const disposable = univerAPI.addEvent(univerAPI.Event.LifeCycleChanged, ({ stage }) => {
  if (stage === univerAPI.Enum.LifecycleStages.Rendered) {
    // Code to be executed when the lifecycle stage is Rendered
  }
  if (stage === univerAPI.Enum.LifecycleStages.Steady) {
    // Code to be executed when the lifecycle stage is Steady
  }
})
```

* [**Полный справочник Facade API**](https://docs.univer.ai/ru-RU/reference/facade.md)
