2017-03-31 3 views
1

:今/principalベースパスに基づいてサブコンポーネントのルートを生成する方法</p> <p>は、私は次のルート持っVUE-ルータで次のルートを取得する方法

{path: '/principal', component: Principal}

を、私が運転する必要があるが同じURLベースを持っている他のコンポーネント、 次のように新しいURLは次のようになります。

/principal/compa

単一の基本ルートで他のコンポーネントを表示できるようにすることはできますか?

何かこれ(私はvue-routerがこのように動作しないことを知っています)が、どのようにこの動作をしますか?

{ path: '/principal', component: Principal, subpath: { path: 'compa', component: 'CompA' } }

おかげ

答えて

1

ネストされたルートでVueのコンポーネントをレンダリングするVueRouterコンストラクタの設定でchildrenオプションがあります。その特定のケースで

、それは次のようになります。

{ 
    path: '/principal', 
    component: Principal, 
    children: [{ 
    path: 'compa', // it would match /principal/compa 
    component: CompA 
    }] 
} 

VUE-ルータドキュメントから:

const router = new VueRouter({ 
    routes: [ 
    { 
     path: '/user/:id', 
     component: User, 
     children: [ // <-- notice the children property 
     { 
      // UserProfile will be rendered inside User's <router-view> 
      // when /user/:id/profile is matched 
      path: 'profile', 
      component: UserProfile 
     }, 
     { 
      // UserPosts will be rendered inside User's <router-view> 
      // when /user/:id/posts is matched 
      path: 'posts', 
      component: UserPosts 
     } 
     ] 
    } 
    ] 
}); 

詳細はnested routesを見てください。

+0

こんにちは、私はその動作を理解していますが、親コンポーネントに表示したくないコンテンツがある場合は、子コンポーネントのコンテンツを表示するだけです。 あなたの提案する方法で、私は同時に父と息子の内容を表示しています – chalo

+0

@chaloそれはすべてコンポーネントの構造に依存します。たとえば、ベースルートのテンプレートに ''のみを含む単純なコンポーネントを使用し、 'children'の空のパスを使用してベースルートのコンポーネントを設定することができます。より大きい場合、ネストされたルートは、ベースルートと同じビューを共有しません(空のパスで指定されます)。 –

関連する問題