Back to questions
Middle
3
Использовали ли вы FSD (Feature-Sliced Design) на проекте? Как писали samples и подписки на события в Effector при использовании FSD?
Companies where asked
SIGNAL
Answer from AI
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-логики соответствует разделению на фичи, что упрощает поддержку и масштабирование приложения.