Сокращение и сторонние библиотеки

#angular #redux #ngrx #flux #ngxs

#angular #сокращение #ngrx #поток #ngxs

Вопрос:

Мы создаем панель администратора, и за основу мы взяли ngx-admin.

Я хочу использовать @ngxs / store в проекте. Но в панели администратора есть сторонние библиотеки и компоненты, которые не работают в режиме redux.

Должен ли я использовать @ngxs / store? Как я могу управлять действиями из сторонних библиотек? Или @ngxs / store нужен для проектов, которые не используют сторонние компоненты?

Например, он использует ng2-smart-table. В таблице есть сортировка, фильтрация и т.д. Все эти действия должны быть действиями по сокращению, и у них должны быть соответствующие редукторы. Но компонент готов к использованию и ничего не знает о глобальном состоянии и не имеет никаких методов для его использования…

Итак, вопрос в том, должен ли я использовать @ngxs / store, или я должен перейти на родной Angular и оставить Redux только для самописного приложения без использования сторонних библиотек?

Ответ №1:

Ответ таков: это зависит.

Если вы хотите внедрить Redux и отслеживать все, вам нужно будет самостоятельно создавать действия для компонентов сторонних разработчиков. Но имейте в виду, что для таблицы вам могут не потребоваться действия для всего, и храните только данные строк, которые вы собираетесь отображать.

Комментарии:

1. Да, но если у меня есть внешний компонент аутентификации, для передачи которого требуется только URL-адрес и описания некоторых полей? Но он хранит и считывает токен под капотом? Как тогда я могу отслеживать состояние вошедшего в систему или вышедшего из системы пользователя из хранилища? Я должен каждый раз спрашивать компонент, вошел ли пользователь в систему или нет и т.д..

2. Ну, я не знаю саму архитектуру ngx-admin, но если их сервисы не предоставляют некоторые перехваты для использования, у вас нет способа изменить их поведение. Другое дело, когда дело доходит до компонентов, где вы обычно предоставляете само состояние, и это действительно можно сделать с помощью Redux.

3. печально, но он не поддерживает архитектуру redux. сам ngx-admin использует nebular , ng2-smart-table и другие сторонние компоненты

4. например, что можно сделать для службы аутентификации nebular?

5. Не уверен, какова ваша цель. Тема используется для делегирования архитектурных вариантов, но, похоже, вы пытаетесь навязать свой выбор архитектуры теме. Если вместо этого вам нужно только подключиться к определенным функциям (например, если пользователь вошел в систему), вам следует просто использовать предоставленные сервисы, NbAuthService в данном случае.