Если я навигация программно с помощью navigate
метода маршрутизатораУгловое 2 разница между стилем параметров маршрута
this.router.navigate(['/articles', {id: 1}]);
Result URL является /articles;page=1
и второй путь
this.router.navigate(['/articles', id]);
Result URL является /articles/1
В обоих вариант I могу получить значения через this.activatedRoute.params.forEach((params: Params) => {});
Так в чем же отличие, кроме стиля?
P.S. Найдено question связанно с различиями между запросом Params & матрицы PARAMS
Thx для clearfication, но что является лучшим выбором для установки необязательного параметра, такого как номер страницы:/articles? Page = 1 или/articles; page = 1? – neilhem
Это зависит от того, чего вы хотите достичь. ': id' используется для согласования маршрутов. Параметры запроса и матрицы просто передают значения, не рассматривая их для согласования маршрутов. Это также зависит, если вы хотите, чтобы '/ articles' был допустимым маршрутом или только'/articles/someid'. –
Фактически '/ article; page = 1' недействителен. Для этого произошла ошибка. Как упоминалось, дополнительные параметры маршрута на корневом маршруте сериализуются как параметры запроса, поэтому действителен только первый. '/ parent/child; someparam = somevalue? page = 1' будет действительным, так как' someparam' является параметром на дочернем маршруте. Я не знаю, как это происходит, когда у вас есть пустой путь корневого пути, а «статья» - это дочерний маршрут. В этом случае ваш второй пример может быть действительным. Должен был испытать, чтобы узнать, каким будет результирующее поведение. –