Мне нравится идея resolver
s.
Вы можете сказать, что:
- для данного маршрута вы ожидаете, что некоторые данные будут загружены сначала
- вы можете просто иметь действительно простой компонент без видимых (как получение данных из this.route.snapshot.data
)
Так что резольверы имеют большой смысл.
НО:
- Вы не изменяете URL-адрес и не показываете запрашиваемый компонент до получения фактического ответа. Таким образом, вы не можете (просто) показать пользователю, что что-то происходит путем рендеринга вашего компонента и показывать столько, сколько вы можете (как это было рекомендовано, для приложения оболочки с PWA). Это означает, что при наличии плохой связи ваш пользователь может просто ждать без визуального указания на то, что происходит в течение длительного времени
- Если вы используете распознаватель на маршруте с параметром, возьмите пример users/1
, он будет работать нормально в первый раз. Но если вы перейдете к users/2
, ничего не произойдет, если вы не начнете использовать другое наблюдаемое: this.route.data.subscribe()
Итак, похоже, что резольверы могут быть полезны для получения некоторых данных, но на практике я бы не использовал их в случае медленной сети и особенно для маршрутов с параметрами.
Я что-то упустил? Есть ли способ использовать их с этими реальными ограничениями?