Angular предоставляет защиту маршрутизатора canLoad и canActivate. CanLoad и canActivate охранники используются для определения того, следует ли загружать и активировать отложенно загруженный модуль или компонент соответственно.

Использование этих охранников имеет два недостатка. Во-первых, вам обычно нужно определить оба. Кроме того, нет простого способа определить несколько маршрутов с одним и тем же путем, которые можно было бы активировать на основе определенных условий.

К счастью, новая мощная защита решает эти проблемы в следующей версии Angular — защита CanMatch.

Защита CanMatch будет контролировать, можем ли мы использовать маршрут и, как побочный эффект, можем ли мы загрузить код. Кроме того, когда один из определенных сторожей возвращает false, маршрут пропускается, и вместо него обрабатываются другие маршруты.

Мы можем, например, использовать защиту CanMatch для загрузки различных компонентов на основе флага функции. В настоящее время нам нужно сделать то, что я объяснил в одной из моих предыдущих статей:



Теперь мы можем сделать следующее:

Когда функция защиты возвращает значение true, она загружает и активирует новую версию todos; в противном случае будет использоваться устаревшая версия.

В качестве альтернативы мы можем вернуть дерево URL или перенаправить на другой маршрут.

Мы также можем использовать эту технику для загрузки различных компонентов в зависимости от роли пользователя.

Подпишитесь на меня в Medium или Twitter, чтобы узнать больше об Angular и JS!