Да, контексты, можно использовать. Если тут дойдем до авторизации, то я покажу как это выглядит. Будет как минимум еще одна часть по fsd - уже снял ролик, надо только озвучить. А дальше по вашим реакциям - если понравится, будем дальше делать.
По идее, Theme это сущность , в которой и лежит апи по управлению entity/theme: - model.ts: -- $theme; -- toggleTheme(); А фича , это, например, переключатель, который импортирует и использует функцию toggleTheme из entity/theme, потому что если тебе еще где-то в какой-то фиче понадобится переключить тему, тебе придется либо создавать еще одну функцию toggleTheme, либо импортировать из другой фичи, что запрещено Проблема подхода feature sliced в том, что он опирается на глобальные состояния, как, например, такое, которые ты сделал для поиска. Что если человек что-то введет, не сотрет, потом разлогинится, зайдет в новый аккаунт , то его поисковой запрос будет тот, который он ввел на предыдущем аккаунте. Это не есть гуд. Как быть? И то же самое касается любого глобального состояния
entity - это бизнес сущности. Если у тебя какой-нибудь saas, который кастомизируется под клиента, то может в этом случае тема будет entity. Здесь же тема - это shared, тк к бизнесу никакого отношения не имеет. Проблем с глобальным состоянием тоже не будет. В примере, который ты привел с поиском, достаточно внутри фичи очищать сторы, когда меняется токен пользователя - это делается очень просто. Я скоро покажу как.
@@jilio.stories Но при этом ты засунул тему в features, а не shared еще покажи, пожалуйста, пример, когда у тебя страница меняется, и тогда тоже надо очистить стор Я думаю, это можно сделать в колбеке который возвращается в useEffect, то есть при смене страницы у тебя либо демонтируется компонент, либо он остается (в таком случае ничего очищать не надо) useEffect(() => { return () => { searchStore.clear(); } }, []);
тема лежит в shared (см. 9:00 на видео) хуки типа useEffect не нужны, это все можно делать средствами стора. Например, если на смену токена пользователя ты хочешь очищать форму поиска из видео, то будет внутри фичи поиска что-то такое: $token.listen(clearSearchQuery)
@@jilio.stories Я именно про случаи, когда нужно очищать при переходе на другую страницу. Прослушивать событие смены страницы тоже не вариант: бывает такое, что путь меняется, но компонент остается
Почему не вариант? В нашем текущем сетапе $router.subscribe(clearSearchQuery) будет отлично работать. Можно и на анмаунт очищать, как ты предложил, если именно это требуется в твоей ситуации.
да, если более свежие ролики посмотришь, то заметишь что я увеличил шрифт и поменял цвета на менее яркие, чтобы у любителей тёмной темы глаза не выжигало
потому что роутеры разные. Если брать "обычный" роутер, которому для работы нужны компоненты страниц - то его ниже pages уже не засунешь. Здесь же роутер - это просто стор, который хранит адрес текущей страницы, он про компоненты ничего не знает, поэтому его можно опускать ниже pages, вплоть до shared.
@@MD3XTER Vivaldi is chromium-based, so it has all the same extensions and tools available as in Chrome, but personally, I prefer the UI/UX and other functionality of Vivaldi
так, нужен дубляж твоего голоса Максимкой, а то непонятен акцент)
Не верьте ему, голос сгенерирован с помощью AI 😂
Спасибо за видео 🔥
ВОУ ВОУ!) а голос то ТОП)
Красиииво
голос топ)
17:10 dependency injection
Спасибо за видео, как всегда очень ёмко (одновременно и подробно, и кратко)
Супер, хотелось бы больше видео по дизайн системе. И скажи плиз, можно ли с этой системой использовать контексты(react).
Да, контексты, можно использовать. Если тут дойдем до авторизации, то я покажу как это выглядит.
Будет как минимум еще одна часть по fsd - уже снял ролик, надо только озвучить. А дальше по вашим реакциям - если понравится, будем дальше делать.
@@jilio.stories спасибо
По идее, Theme это сущность , в которой и лежит апи по управлению
entity/theme:
- model.ts:
-- $theme;
-- toggleTheme();
А фича , это, например, переключатель, который импортирует и использует функцию toggleTheme из entity/theme, потому что если тебе еще где-то в какой-то фиче понадобится переключить тему, тебе придется либо создавать еще одну функцию toggleTheme, либо импортировать из другой фичи, что запрещено
Проблема подхода feature sliced в том, что он опирается на глобальные состояния, как, например, такое, которые ты сделал для поиска.
Что если человек что-то введет, не сотрет, потом разлогинится, зайдет в новый аккаунт , то его поисковой запрос будет тот, который он ввел на предыдущем аккаунте. Это не есть гуд. Как быть? И то же самое касается любого глобального состояния
entity - это бизнес сущности. Если у тебя какой-нибудь saas, который кастомизируется под клиента, то может в этом случае тема будет entity. Здесь же тема - это shared, тк к бизнесу никакого отношения не имеет.
Проблем с глобальным состоянием тоже не будет. В примере, который ты привел с поиском, достаточно внутри фичи очищать сторы, когда меняется токен пользователя - это делается очень просто. Я скоро покажу как.
@@jilio.stories
Но при этом ты засунул тему в features, а не shared
еще покажи, пожалуйста, пример, когда у тебя страница меняется, и тогда тоже надо очистить стор
Я думаю, это можно сделать в колбеке который возвращается в useEffect, то есть при смене страницы у тебя либо демонтируется компонент, либо он остается (в таком случае ничего очищать не надо)
useEffect(() => {
return () => {
searchStore.clear();
}
}, []);
тема лежит в shared (см. 9:00 на видео)
хуки типа useEffect не нужны, это все можно делать средствами стора. Например, если на смену токена пользователя ты хочешь очищать форму поиска из видео, то будет внутри фичи поиска что-то такое: $token.listen(clearSearchQuery)
@@jilio.stories Я именно про случаи, когда нужно очищать при переходе на другую страницу. Прослушивать событие смены страницы тоже не вариант: бывает такое, что путь меняется, но компонент остается
Почему не вариант? В нашем текущем сетапе $router.subscribe(clearSearchQuery) будет отлично работать. Можно и на анмаунт очищать, как ты предложил, если именно это требуется в твоей ситуации.
Урааааааа, спасибо, братишка
спасибо за видос! только можно чуть увеличить шрифт или растянуть окно на весь экран? смотрю на телефоне и приходится сильно вглядываться)
да, если более свежие ролики посмотришь, то заметишь что я увеличил шрифт и поменял цвета на менее яркие, чтобы у любителей тёмной темы глаза не выжигало
Спасибо, братишка!
Озвучка топ)
всё светлое, ааа я ослеп))
Подразумевается ли использование на одном уровне слоя?
Все равно во всех примерах, у всех все по разному, у кого-то роутер в pages у кого-то в шаред/апи и так далее.
потому что роутеры разные. Если брать "обычный" роутер, которому для работы нужны компоненты страниц - то его ниже pages уже не засунешь. Здесь же роутер - это просто стор, который хранит адрес текущей страницы, он про компоненты ничего не знает, поэтому его можно опускать ниже pages, вплоть до shared.
What is your VSCode Theme? Looks gorgeous!
it's "light modern" theme, it was recently added to vscode
@@jilio.stories Cool, and what browser you use?
@@MD3XTER the browser I'm using here is Vivaldi
@@jilio.stories Thanks! Do you find it good enough for Font-End Development compared with Google Chrome for example?
@@MD3XTER Vivaldi is chromium-based, so it has all the same extensions and tools available as in Chrome, but personally, I prefer the UI/UX and other functionality of Vivaldi