sibir-9k / Homework-Digital-Design

0 stars 0 forks source link

Ревью ДЗ Лекция 7 - Vuex #3

Open AlexPol9 opened 1 year ago

AlexPol9 commented 1 year ago

По структуре организации самого хранилища вопросов нет, есть вопросы по реализации. Частично реализовано хранение состояния загрузки (только в проектах), не реализовано сохранение фильтров.

Остальные замечания идут уже непосредственно к логике работы:

  1. https://github.com/sibir-9k/Homework-Digital-Design/blob/0e6b2fa04aa27c9ca72e934cab1d8d3453b6b5a2/src/store/AuthUserModule.js#L46 - непонятно, зачем из стора делать переходы в роутер. Этим должен заниматься внешний компонент
  2. https://github.com/sibir-9k/Homework-Digital-Design/blob/0e6b2fa04aa27c9ca72e934cab1d8d3453b6b5a2/src/store/AuthUserModule.js#L44 - токен в localStorage хранить можно, но зачем тогда нужен vuex? Можно использовать стор в качестве промежуточного слоя для получения данных, когда стор будет использован как обертка над localStorage для сохранения и получения данных токена. При этом само приложение напрямую с localStorage работать не будет, а предоставит все взаимодейтствие хранилищу. Либо переработать взаимодействие с токеном другим образом. Также данное замечание касается userId, но тут совсем непонятно, зачем хранить его в localStorage, если его можно всегда получить по токену при перезагрузке страницы.
  3. https://github.com/sibir-9k/Homework-Digital-Design/blob/0e6b2fa04aa27c9ca72e934cab1d8d3453b6b5a2/src/store/ProjectModule.js#L42 - попробуйте проанализировать ваше приложение, чтобы понять какие данные являются общими для различных компонентов, а какие можно хранить внутри компонента. В стор конечно можно сохранять все, но это не имеет смысла, если нам достаточно локального состояния компонента
  4. можно попытаться найти сходство между фильтрами (в вашем случае это currentPage) в разных представлениях и скомпоновать их в единый фильтр. Состояние загрузки также можно вынести в общие данные (например в модуль без простаранства имен).

В целом код стора рабочий, нужно добавлять остальной функционал.

AlexPol9 commented 1 year ago

Рекомендация для дальнейшей разработки: https://github.com/sibir-9k/Homework-Digital-Design/blob/0e6b2fa04aa27c9ca72e934cab1d8d3453b6b5a2/src/api/api.js#L1 - в сборках webpack и vuecli для лекций настроено проксирование для дев-разработки, при котором все запросы на /api автоматически проксирутся на сервер. Возможно это упростит разработку. Также там присутствует подключение axios, возможно это поможет упростить вызовы запросов