## AJAX Menu Loading

The `ajax`, `request`, and `cache` properties are designed for managing asynchronous loading and caching of menu data.

**Properties:**

- `ajax` — enables remote data loading mode (URL string or function)
- `request` — object of type `ApiFetch` with HTTP request settings
- `cache` — enables caching of loaded menu items

Properties work together: if `ajax` is not specified or equals `false`, the menu uses local data. When `ajax` is activated (URL string or `true`), `request` defines HTTP request parameters (method, headers, body), and `cache` manages data persistence. When `cache` is enabled, repeated menu openings use saved data instead of new requests, reducing server load.

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

const isOpen = ref(false)
</script>

<template>
  <!-- Loading with URL -->
  <Menu
    v-model:open="isOpen"
    ajax="/api/menu-items"
    :cache="true"
  />

  <!-- With request settings -->
  <Menu
    v-model:open="isOpen"
    ajax="/api/menu"
    :request="{
      method: 'POST',
      headers: { 'X-Custom': 'value' },
      auth: true
    }"
    :cache="true"
  />

  <!-- Loading function -->
  <Menu
    v-model:open="isOpen"
    :ajax="async () => {
      const response = await fetch('/api/menu')
      return response.json()
    }"
  />
</template>
```
