Комментарии 12
Имхо, тема необходимости использования NgRX не раскрыта
0
Уже давно 6 ангуляр вышел, а в статье упоминаются «новые» интерцепторы, и ни слова о providedIn: ‘root’ и тд
0
Почему нет ни одного совета по организации маршрутизации? До сих пор не удалось найти или придумать наиболее удачный способ маршрутизации в приложении. Стандартный модуль кажется слишком громоздким. Хотелось бы иметь модуль или провайдер простой и расширяемый как angular-ui.
0
А можете более подробно описать чем не устраивает роутинг в Angular и чем angular-ui роутинг лучше на ваш взгляд?
0
В angular-ui нравится, что единицей является Стейт, и для навигации достаточно указать его имя и необходимые параметры. То есть компоненты не знают на какой url они инициируют переход. В 2+ же для навигации нужно использовать url, причем переход на рутовый, родительский и дочерний стейты относительно текущего отличается, и всю эту реализацию приходится хранить в компоненте.
0
import { go, replace, search, show, back, forward } from "@ngrx/router-store";Такие импорты в текущей версии @ngrx/router-store недоступны, github.com/ngrx/platform/blob/master/MIGRATION.md
0
Я бы предостерег от использования index.ts файлов, т.к. импорт из такого файла, в котором лежит "много чего" (обычно в корневых ре-экспортах), предотвращает нормальную работу tree shaking'а. Пол дня выяснял, почему у меня стал такой здоровый бандл и tree shaking перестал работать. Так что лучше полностью отказаться от index.ts файлов в большинстве случаев.
0
Странно. По идее это баг tree shaking'а. Или особенность кода. Например, тот же Rx v6 тянет все свои классы из единственного 'rxjs', и это не приводит к тому, что единственный импорт тянет за собой всю библиотеку.
Мне кажется, что лучше разобраться в чем причина, чем просто отказываться от столь удобной возможности организации кода.
Мне кажется, что лучше разобраться в чем причина, чем просто отказываться от столь удобной возможности организации кода.
0
В дополнение к takeUntil и takeWhile для автоматической отписки можно использовать подход untilDestroyed (статья).
0
Http Observable — финитный, а слушатели/наблюдатели (listeners) DOM событий — это инфинитные Observable.Абсолютно верно!
Но дальше Вы даете пример с отпиской, где она не нужна.
Код из статьи
export class SomeComponent implements OnDestroy, OnInit {
public user: User;
private alive: boolean = true;
public ngOnInit() {
this.userService
.authenticate(email, password)
.takeWhile(() => this.alive)
.subscribe(user => {
this.user = user;
});
}
public ngOnDestroy() {
this.alive = false;
}
}
Здесь нужно уточнять что у вас находится в «authenticate()». Если там просто HTTP запрос, то «takeWhile()» не обязателен. Имейте ввиду, что из-за таких туманных «best practice», людей не берут на работу, когда проверяющий тестовое задание начитается, но не поймет сути.
0
Уточню. Здесь отписка действительно нужна, но не потому что, если её не делать, то будет какая-то утечка памяти. Утечки не будет, просто отпиской мы предотвращаем выполнение куска кода в случае, если мы перешли на другой компонент, но запрос на предыдущем ещё не завершен (что всё-таки бывает не часто).
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Несколько советов по Angular