## AJAX загрузка меню

Свойства `ajax`, `request` и `cache` предназначены для управления асинхронной загрузкой и кэшированием данных меню.

**Свойства:**

- `ajax` — включает режим удалённой загрузки данных (строка URL или функция)
- `request` — объект типа `ApiFetch` с настройками HTTP-запроса
- `cache` — включает кэширование загруженных элементов меню

Свойства работают совместно: если `ajax` не задан или равен `false`, меню использует локальные данные. При активации `ajax` (строка URL или `true`), `request` определяет параметры HTTP-запроса (метод, заголовки, тело), а `cache` управляет сохранением данных. При включённом `cache` повторные открытия меню используют сохранённые данные вместо новых запросов, снижая нагрузку на сервер.

```html
<script setup>
import { ref } from 'vue'

const isOpen = ref(false)
</script>

<template>
  <!-- Загрузка с URL -->
  <Menu
    v-model:open="isOpen"
    ajax="/api/menu-items"
    :cache="true"
  />

  <!-- С настройками запроса -->
  <Menu
    v-model:open="isOpen"
    ajax="/api/menu"
    :request="{
      method: 'POST',
      headers: { 'X-Custom': 'value' },
      auth: true
    }"
    :cache="true"
  />

  <!-- Функция загрузки -->
  <Menu
    v-model:open="isOpen"
    :ajax="async () => {
      const response = await fetch('/api/menu')
      return response.json()
    }"
  />
</template>
```
