2017-02-23 9 views
3

Это сообщение, чтобы получить второе мнение по следующему вопросу. Вот два маршрута, которые настраивают компонент для URL-адреса /tasks. Я тестировал, и они кажутся эквивалентными. Теперь мне интересно, какой из них предпочтительнее. Предположим, что есть другие дети на маршрутах, отмеченных ....Указание компонента на пустом пути детей или родителя

Итак, первый, где компонент, указанный рядом с path:

export const tasksRoutes: Routes = [ 
    { 
    path: 'tasks', 
    component: ExTasksComponent, 
    children: [ 
     ... 
    ] 
    } 
]; 

И второй, где компонент указан в пустой пути children узла:

export const tasksRoutes: Routes = [ 
    { 
    path: 'tasks', 
    children: [ 
     { 
     path: '', 
     component: ExTasksComponent 
     } 
     ... 
    ] 
    } 
]; 

Любые мысли ?

+0

Они не эквивалентны. В первом примере шаблон для «ExTasksComponent» будет отображаться для ** всех дочерних компонентов **, тогда как во втором примере шаблон для «ExTasksComponent» будет отображаться ** только один раз **. Вопрос в том, что «все маршруты, начинающиеся с« path ... », имеют общую разметку (например, панель навигации), которую вы можете обернуть в родительский компонент« ?. – AngularChef

+0

@AngularFrance, пожалуйста, уточните, я не понимаю, что вы имеете в виду. Внутри шаблона 'ExTasksComponent' есть' ', и здесь будут отображаться другие дочерние компоненты. Это верно для обеих конфигураций. –

+1

В первом примере родительский шаблон по-прежнему отображается для каждого дочернего элемента, даже если он содержит только '' (я бы согласился, что это часть отходов, чтобы иметь компонент/шаблон, чтобы держать выход). В любом случае, моя точка зрения заключалась в том, что ваши два примера не совсем эквивалентны. Более конкретно, шаблон 'ExTasksComponent' не будет иметь такую ​​же разметку в примере # 1 и примере # 2, поэтому, возможно, структура вашей разметки может помочь вам выбрать наилучшую настройку. – AngularChef

ответ

2

Хотя это немного основано на мнениях, второе будет более благополучным.

Савкин заявил: Componentless маршрутов «потреблять» сегменты URL без инстанцирования компоненты в: http://vsavkin.tumblr.com/post/146722301646/angular-router-empty-paths-componentless-routes

Так вы будете инстанцированием базового компонента без необходимости при переходе к другим детям маршрутам в противном случае.

Смежные вопросы