0iq: Пробуем feature-sliced design и nanostores

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ย. 2024

ความคิดเห็น • 32

  • @mykolamorozov2099
    @mykolamorozov2099 ปีที่แล้ว +6

    так, нужен дубляж твоего голоса Максимкой, а то непонятен акцент)

  • @erassylzh5658
    @erassylzh5658 ปีที่แล้ว +6

    Не верьте ему, голос сгенерирован с помощью AI 😂
    Спасибо за видео 🔥

  • @user-ey2vv1dl3n
    @user-ey2vv1dl3n ปีที่แล้ว +4

    ВОУ ВОУ!) а голос то ТОП)

  • @Ilia-t3j
    @Ilia-t3j ปีที่แล้ว +7

    Красиииво

  • @sankov206
    @sankov206 ปีที่แล้ว +6

    голос топ)

  • @mnik0128
    @mnik0128 ปีที่แล้ว +3

    17:10 dependency injection

  • @dimaxj474ZtR
    @dimaxj474ZtR ปีที่แล้ว +3

    Спасибо за видео, как всегда очень ёмко (одновременно и подробно, и кратко)

  • @serafim2867
    @serafim2867 ปีที่แล้ว +3

    Супер, хотелось бы больше видео по дизайн системе. И скажи плиз, можно ли с этой системой использовать контексты(react).

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว +1

      Да, контексты, можно использовать. Если тут дойдем до авторизации, то я покажу как это выглядит.
      Будет как минимум еще одна часть по fsd - уже снял ролик, надо только озвучить. А дальше по вашим реакциям - если понравится, будем дальше делать.

    • @serafim2867
      @serafim2867 ปีที่แล้ว

      @@jilio.stories спасибо

  • @grenadier4702
    @grenadier4702 ปีที่แล้ว +3

    По идее, Theme это сущность , в которой и лежит апи по управлению
    entity/theme:
    - model.ts:
    -- $theme;
    -- toggleTheme();
    А фича , это, например, переключатель, который импортирует и использует функцию toggleTheme из entity/theme, потому что если тебе еще где-то в какой-то фиче понадобится переключить тему, тебе придется либо создавать еще одну функцию toggleTheme, либо импортировать из другой фичи, что запрещено
    Проблема подхода feature sliced в том, что он опирается на глобальные состояния, как, например, такое, которые ты сделал для поиска.
    Что если человек что-то введет, не сотрет, потом разлогинится, зайдет в новый аккаунт , то его поисковой запрос будет тот, который он ввел на предыдущем аккаунте. Это не есть гуд. Как быть? И то же самое касается любого глобального состояния

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว +1

      entity - это бизнес сущности. Если у тебя какой-нибудь saas, который кастомизируется под клиента, то может в этом случае тема будет entity. Здесь же тема - это shared, тк к бизнесу никакого отношения не имеет.
      Проблем с глобальным состоянием тоже не будет. В примере, который ты привел с поиском, достаточно внутри фичи очищать сторы, когда меняется токен пользователя - это делается очень просто. Я скоро покажу как.

    • @grenadier4702
      @grenadier4702 ปีที่แล้ว

      @@jilio.stories
      Но при этом ты засунул тему в features, а не shared
      еще покажи, пожалуйста, пример, когда у тебя страница меняется, и тогда тоже надо очистить стор
      Я думаю, это можно сделать в колбеке который возвращается в useEffect, то есть при смене страницы у тебя либо демонтируется компонент, либо он остается (в таком случае ничего очищать не надо)
      useEffect(() => {
      return () => {
      searchStore.clear();
      }
      }, []);

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว

      тема лежит в shared (см. 9:00 на видео)
      хуки типа useEffect не нужны, это все можно делать средствами стора. Например, если на смену токена пользователя ты хочешь очищать форму поиска из видео, то будет внутри фичи поиска что-то такое: $token.listen(clearSearchQuery)

    • @grenadier4702
      @grenadier4702 ปีที่แล้ว +1

      @@jilio.stories Я именно про случаи, когда нужно очищать при переходе на другую страницу. Прослушивать событие смены страницы тоже не вариант: бывает такое, что путь меняется, но компонент остается

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว

      Почему не вариант? В нашем текущем сетапе $router.subscribe(clearSearchQuery) будет отлично работать. Можно и на анмаунт очищать, как ты предложил, если именно это требуется в твоей ситуации.

  • @trickster6123
    @trickster6123 ปีที่แล้ว +2

    Урааааааа, спасибо, братишка

  • @peteralmazov8525
    @peteralmazov8525 ปีที่แล้ว +1

    спасибо за видос! только можно чуть увеличить шрифт или растянуть окно на весь экран? смотрю на телефоне и приходится сильно вглядываться)

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว

      да, если более свежие ролики посмотришь, то заметишь что я увеличил шрифт и поменял цвета на менее яркие, чтобы у любителей тёмной темы глаза не выжигало

  • @ivaneroshkin
    @ivaneroshkin ปีที่แล้ว +1

    Спасибо, братишка!
    Озвучка топ)

  • @DeanRie
    @DeanRie ปีที่แล้ว +1

    всё светлое, ааа я ослеп))

  • @artemzimin7669
    @artemzimin7669 ปีที่แล้ว

    Подразумевается ли использование на одном уровне слоя?

  • @КириллАкутин-п3д
    @КириллАкутин-п3д ปีที่แล้ว

    Все равно во всех примерах, у всех все по разному, у кого-то роутер в pages у кого-то в шаред/апи и так далее.

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว

      потому что роутеры разные. Если брать "обычный" роутер, которому для работы нужны компоненты страниц - то его ниже pages уже не засунешь. Здесь же роутер - это просто стор, который хранит адрес текущей страницы, он про компоненты ничего не знает, поэтому его можно опускать ниже pages, вплоть до shared.

  • @MD3XTER
    @MD3XTER ปีที่แล้ว

    What is your VSCode Theme? Looks gorgeous!

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว +1

      it's "light modern" theme, it was recently added to vscode

    • @MD3XTER
      @MD3XTER ปีที่แล้ว

      @@jilio.stories Cool, and what browser you use?

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว

      @@MD3XTER the browser I'm using here is Vivaldi

    • @MD3XTER
      @MD3XTER ปีที่แล้ว

      @@jilio.stories Thanks! Do you find it good enough for Font-End Development compared with Google Chrome for example?

    • @jilio.stories
      @jilio.stories  ปีที่แล้ว +1

      @@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