Встроенные компоненты Vue3

В Vue.js есть несколько встроенных глобальных компонентов и встроенных компонентов, которые предоставляют общие функции и поддержку макета, помогая разработчикам быстро создавать интерфейсы приложений.

Ниже приведены некоторые распространённые встроенные компоненты Vue и их функции:

1. компонент

<component>Это абстрактный компонент, используемый для динамического отображения различных компонентов или элементов.

Путём привязкиisатрибута можно реализовать переключение и отображение динамических компонентов.

<component :is="currentComponent"></component>

2. transitionиtransition-group

<transition>и<transition-group>Обеспечивает возможность реализации переходов и анимаций в Vue.js.

Определяя имена CSS-классов для переходов, можно управлять эффектами анимации элементов при их входе в DOM или выходе из него.

<transition name="fade">
  <div v-if="show">Hello!</div>
</transition>
<transition-group name="list" tag="ul">
  <li v-for="item in items" :key="item.id">{{ item.text }}</li>
</transition-group>

3. keep-alive

<keep-alive>Это абстрактный компонент, используемый для сохранения состояния компонента или предотвращения множественных повторных рендеров.

Когда компонент<keep-alive>обёрнут, его состояние будет кэшировано вместо повторного рендеринга при каждом переключении.

<keep-alive>
  <component :is="currentComponent"></component>
</keep-alive>

4. slot

<slot>Это компонент слота в Vue.js, используемый для вставки содержимого. Он позволяет родительскому компоненту передавать содержимое в определённые позиции слотов внутри дочернего компонента, делая компоненты более гибкими и переиспользуемыми.

<child-component>
  <template #header>
    <h2>Header Content</h2>
  </template>
  <template #default>
    <p>Default Content</p>
  </template>
</child-component>

5. teleport

<teleport>Позволяет отображать DOM-элементы в любом месте приложения, не ограничиваясь текущей структурой DOM. Это очень полезно, когда необходимо динамически перемещать элементы в приложении, например отображать содержимое всплывающего окна в модальном окне.

<teleport to="body">
  <modal-dialog v-if="showModal">
    <!-- modal content -->
  </modal-dialog>
</teleport>

6. Suspense

<Suspense>Это компонент, недавно добавленный в Vue.js 3.x, используемый для обработки загрузки и состояния асинхронных компонентов. Он может отображать содержимое-заполнитель до завершения загрузки асинхронного компонента и обрабатывать состояния загрузки и ошибки.

<Suspense>
  <template #default>
    <AsyncComponent />
  </template>
  <template #fallback>
    <div>Loading...</div>
  </template>
</Suspense>
Другие расширения