Sobes.tech
Назад к вопросам
Middle
3

Что такое Composable? Можешь привести пример хорошего composable?

Компании, где спрашивали
Хайерлаб

Ответ от нейросети

sobes.tech AI

Composable — это функция в Vue 3 (или аналогичных фреймворках), которая инкапсулирует и переиспользует логику состояния и поведения компонентов. Composable позволяет разделять код по функциональным блокам, улучшая читаемость и поддержку.

Пример хорошего composable — функция для работы с формой, которая управляет состоянием полей, валидацией и отправкой:

import { ref } from 'vue';

export function useForm(initialValues) {
  const values = ref({ ...initialValues });
  const errors = ref({});

  function validate() {
    errors.value = {};
    // простая валидация: обязательные поля
    for (const key in values.value) {
      if (!values.value[key]) {
        errors.value[key] = 'Поле обязательно';
      }
    }
    return Object.keys(errors.value).length === 0;
  }

  function submit() {
    if (validate()) {
      // логика отправки
      console.log('Отправка формы', values.value);
    }
  }

  return { values, errors, submit };
}

Такой composable можно использовать в разных компонентах, переиспользуя логику формы.