Middle
Da li ste koristili FSD (Feature-Sliced Design) u projekta? Kako ste pisali uzorke i pretplate na događaje u Effector-u pri korišćenju FSD?
sobes.tech АИ
Одговор од АИ
Да, я использовал 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-логики соответствует разделению на фичи, что упрощает поддержку и масштабирование приложения.