> Для чего нужен defineExpose во Vue 3 (Vue.js)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Библио-Глобус

Стек: Vue.js

> Пример ответа

defineExpose во Vue 3 используется для явного указания, какие свойства или методы компонента (написанного с Composition API и <script setup>) должны быть доступны родительскому компоненту через ссылку (template ref). По умолчанию всё, что объявлено внутри <script setup>, является приватным и не видно снаружи. defineExpose позволяет контролировать публичный интерфейс компонента, например, чтобы родитель мог вызвать метод дочернего компонента или получить доступ к его реактивным данным.

Пример:

<!-- Child.vue -->
<script setup>
import { ref } from 'vue'

const count = ref(0)
const increment = () => count.value++

defineExpose({ count, increment })
</script>
<!-- Parent.vue -->
<template>
  <Child ref="childRef" />
  <button @click="childRef.increment()">+</button>
</template>

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью