В нашем приложении углового2-скрипта мы используем маршрутизатор. Наши компоненты довольно общие, и их поведение резко меняется на основе параметров, которые они получают от маршрутизатора.Как заставить Angular2 повторно создавать компоненты каждый раз, когда я показываю их
Приложение находится на ранней стадии разработки, и поведение, о котором я говорю, было замечено в последнее время. Я не уверен, связано ли это с изменением кода или изменением в одной из библиотек.
Рассмотрите возможность создания компонента List
. он получает некоторую информацию из контекста (маршрут, компонент упаковки и т. д.), такой как тип сущности, который он должен отображать.
Теперь, когда я меняю маршрут, компоненты List
не повторно создаются, но его параметры обновляются. Поскольку я использую эти параметры в ngOnInit
для настройки компонента, более поздние изменения не будут иметь никакого эффекта.
Я знаю, что могу использовать обнаружение изменений, чтобы обойти эту проблему, но я не хочу этого делать. Причина в том, что разработчикам будет намного проще вводить ошибки регрессии (такие как: список пользователей goto, затем сделать что-то, перейти к списку заказов, что-то там не должно быть), которые гораздо труднее обнаружить , тестировать и воспроизводить. Они гораздо более вероятны для утечки в производство.
Как я могу заставить углы повторно создать компонент списка при изменении маршрута.
Другие наблюдения: в маршрутизаторе, если я перехожу к маршруту, который не отображает компонент «Список», а затем возвращается в список, компонент повторно создается.
В поздних альфах использовался 'routerCanReuse', но не уверен, что с ним произойдет ... Швы не реализованы в маршрутизаторе 3.x, проверьте https://github.com/angular/angular/issues/9811 – Sasxa