ENIGMA AI
ENIGMA AI

Какие есть особенности и основные концепции Vue.js?

встречается 1× Vue.js junior frontend

Как ответить

Vue.js — это прогрессивный фреймворк для построения пользовательских интерфейсов. Его главные фичи — реактивная система данных и компонентный подход. В отличие от React, Vue использует шаблоны (template) вместо JSX, и реактивность реализована через Proxy (в Vue 3) или defineProperty (в Vue 2).

Основные концепции:

  • Реактивность: при изменении данных Vue автоматически обновляет DOM. Например, если у нас есть data() { return { count: 0 } }, то при вызове this.count++ в шаблоне перерендерится только то, что зависит от count.
  • Однофайловые компоненты (SFC): каждый компонент — это файл .vue, содержащий template, script и style. Это упрощает организацию кода.
  • Директивы: v-bind для привязки атрибутов, v-if/v-show для условного рендеринга, v-for для списков, v-model для двусторонней привязки в формах.
  • Computed и watchers: computed — это вычисляемые свойства, которые кэшируются и обновляются только при изменении зависимостей. watch — следит за изменениями данных и выполняет сайд-эффекты.
  • Жизненный цикл: хуки created, mounted, updated, destroyed (или unmounted в Vue 3). В mounted обычно делают запросы к API.

Пример простого компонента (Vue 3 Options API):

<template>
  <div>
    <p>{{ message }}</p>
    <button @click="reverseMessage">Перевернуть</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Привет, Vue!'
    }
  },
  methods: {
    reverseMessage() {
      this.message = this.message.split('').reverse().join('')
    }
  }
}
</script>

Для маршрутизации используется Vue Router, для управления состоянием — Pinia (или Vuex). Для junior достаточно понимать, что компоненты — это кирпичики, реактивность — магия, а директивы — способ связать данные с DOM.

Ключевые тезисы

  • Реактивность: автоматическое обновление DOM при изменении данных (Proxy в Vue 3).
  • Однофайловые компоненты (SFC): template, script, style в одном .vue файле.
  • Директивы: v-bind, v-if, v-for, v-model — связывают данные с шаблоном.
  • Computed vs Watch: computed для вычислений, watch для сайд-эффектов.
  • Жизненный цикл: created, mounted, unmounted — точки для инициализации и очистки.

Что спросят дальше

  • — Чем computed отличается от watch? Приведи пример, когда лучше использовать каждый.
  • — Как работает реактивность в Vue 3 под капотом? Что такое Proxy и как он отслеживает изменения?
  • — Как работает v-model на кастомном компоненте? Что нужно сделать, чтобы она работала?

Готовьтесь к собеседованию с ENIGMA AI

AI-суфлёр подсказывает ответы прямо на собеседовании в реальном времени — незаметно для интервьюера.

Скачать приложение