2017-02-23 17 views
3

この投稿は次の点で第2意見を得ることです。 /tasks URLのコンポーネントを設定する2つのルートは次のとおりです。私はテストしたし、彼らは同等のようだ。今私はどれが好ましいか疑問に思います。 ...とマークされたルートに他の子供がいるとします。したがって子空のパスまたは親にコンポーネントを指定する

、コンポーネントはpath一緒に指定されている最初のもの:

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

およびコンポーネントはchildrenノードの空のパスで指定される第二:

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

任意の考えを?

+0

これらは同等ではありません。最初の例では、**すべての子コンポーネント**に対して 'ExTasksComponent'のテンプレートが表示されていますが、2番目の例では' ExTasksComponent'のテンプレートは** ** 1回だけ表示されます。問題は "' path ...で始まるすべてのルートに、親コンポーネントでラップできるマークアップ(ナビゲーションバーなど)が共通しているかどうかです。 – AngularChef

+0

@AngularFrance、明らかにしてください、私はあなたが何を意味するのか分かりません。 'ExTasksComponent'テンプレートの中に' 'があり、これは他の子コンポーネントがレンダリングされる場所です。これは両方の設定に当てはまります。 –

+1

最初の例では、 ''しか含まれていなくても、すべての子供に対して親テンプレートが表示されています(コンセントを保持するためにコンポーネント/テンプレートを持っているのは少し駄目です)。とにかく、私のポイントは、あなたの2つの例は全く同じではありませんでした。具体的には、ExTasksComponent'のテンプレートは例#1と例#2では同じマークアップを持たないため、マークアップの構造が最良の設定を決めるのに役立つかもしれません。 – AngularChef

答えて

2

これは少し意見に基づいていますが、2番目のものはより多くの悪質なものになります。

savkinは、次のように述べていますComponentlessルートを内のコンポーネントをインスタンス化せずにURLセグメントを「消費」:そうでない場合は、他の子のルートに移動するときあなたが不必要に基本コンポーネントをインスタンス化されますhttp://vsavkin.tumblr.com/post/146722301646/angular-router-empty-paths-componentless-routes

関連する問題