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

Использовали ли вы FSD (Feature-Sliced Design) на проекте? Как писали samples и подписки на события в Effector при использовании FSD?

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

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

sobes.tech AI

Да, я использовал Feature-Sliced Design (FSD) в проектах для организации фронтенд-кода по функциональным срезам, что улучшало масштабируемость и поддержку.

При работе с Effector в рамках FSD для написания samples и подписок на события я придерживался следующих практик:

  • Samples: создавал sample-состояния или событий, которые отражают конкретные части функционала (например, отдельный feature или slice).
  • Подписки: подписывался на события или эффекты внутри соответствующего слоя или feature, чтобы локализовать логику и избежать глобальных зависимостей.

Пример создания sample и подписки:

import { createEvent, createStore, sample } from 'effector';

// событие в feature
const fetchData = createEvent();

// store для хранения данных
const dataStore = createStore(null);

// sample: при fetchData запускаем эффект загрузки
sample({
  clock: fetchData,
  target: fetchEffect,
});

// подписка на результат эффекта
dataStore.on(fetchEffect.doneData, (_, payload) => payload);

Таким образом, в FSD структура Effector-логики соответствует разделению на фичи, что упрощает поддержку и масштабирование приложения.