今回は、vue ネストルーティングの使い方と、vue ネストルーティングを使用する際の注意点を紹介します。実際のケースを見てみましょう。
パート 1: vue ネストされたルーティング
ネストされたルーティングとは何ですか?
ネストされたルーティングとは、ルーティングされたページの下でルーティングを引き続き使用できることを意味します。たとえば、vue では、ネストされたルーティングを使用しない場合、<router-view>
は 1 つだけになりますが、これを使用すると、<router-view> が存在します。 ;
コンポーネント内では、これもネストを構成します。 <router-view>
,但是如果使用,那么在一个组件中就还有<router-view>
,这也就构成了嵌套。
为什么要使用嵌套路由?
就比如在一个页面中, 在页面的上半部分,有三个按钮,而下半部分是根据点击不同的按钮来显示不同的内容,那么我们就可以在这个组件中的下半部分看成是一个嵌套路由,也就是说在这个组件的下面需要再来一个<router-view>
, 当我点击不同的按钮时,他们的router-link分别所指向的组件就会被渲染到这个<router-view>
中。
官网是怎么介绍的?
每次说到官网,就要说一说百度,百度搜索千万别用。。
要说官网举得这个图,本意是好的,但是描述起来累赘太多。吐个槽。。
这就是实际生活中的一个很好的应用界面, 通常是由多层嵌套的组件组合而成。 同样的, URL中各段动态路径也按照某种结构对应嵌套的各层组件。如上所示。
即user表示用户页, 而user就可以看成是vue中的一个单页面,对于一个user,一定要有哪一个用户,这里的foo(小明、小红)就代表了一个用户,这里的profile可以理解为个人主页,这里的posts可以理解为这个人所发表的文章, 而title可能是不变的,比如无论切换到这个人发表的文章,还是切换到这个人的个人主页,我们都希望在最上方显示同样的东西,而在切换的时候换的就是下面的部分,这个部分我们就可以用<router-view>来写,那么,这,就是嵌套路由。
借助vue-router,使用嵌套路由配置,就可以很简单的表达这种关系。
<p id="app"> <router-view></router-view> </p>
const User = { template: ` <p class="user"> <h2>User {{ $route.params.id }}</h2> <router-view></router-view> </p> } const router = new VueRouter({ routes: [ { path: '/user/:id', component: User, children: [ { // 当 /user/:id/profile 匹配成功, // UserProfile 会被渲染在 User 的 <router-view> 中 path: 'profile', component: UserProfile }, { // 当 /user/:id/posts 匹配成功 // UserPosts 会被渲染在 User 的 <router-view> 中 path: 'posts', component: UserPosts }, // 当 /user/:id 匹配成功, // UserHome 会被渲染在 User 的 <router-view> 中 { path: '', component: UserHome }, // ...其他子路由 ] } ] })
OK! 这大致就是嵌套路由了! 其中,第一段代码是在文件中放了<router-view>
たとえば、ページにはページの上部に 3 つのボタンがあり、下部には異なるボタンのクリックに基づいて異なるコンテンツが表示されます。すると、このコンポーネントの下部がネストされていることがわかります。これは、このコンポーネントの下に別の <router-view>
が必要であることを意味します。別のボタンをクリックすると、コンポーネントがポイントします。 router-link
<router-view>
にレンダリングされます。
公式サイトはどのように紹介されていますか?
公式 Web サイトについて話すときは、Baidu 検索Don について話さなければなりません。使わないでください。 。
というのが私の本来の意図です。公式サイトにはこの写真が引用されています 良いのですが、説明するのが面倒です。苦情を申し立ててください。 。 これは現実の優れたアプリケーション インターフェイスであり、通常はネストされたコンポーネントの複数の層で構成されます。 同様に、URL 内の各動的パス セグメントも、特定の構造に従ってネストされたコンポーネントの各層に対応します。上に示したように。
つまり、user はユーザー ページを表し、user は vue 内の単一のページと見なすことができます。ここで、foo (Xiao Ming、Xiao Hon) はユーザーを表すことができます。たとえば、この人が公開した記事に切り替えても、この人の個人ホームページに切り替えても、タイトルは変更されない可能性があります。上部には同じものが表示されており、切り替えると下部が変更されます。この部分を <router-view> で記述します。これがネストされたルーティングです。 vue-router とネストされたルーティング設定を使用すると、この関係を簡単に表現できます。
リーリー🎜OK! これは大まかにネストされたルーティングです。 このうち、最初のコードはファイルに<router-view>
を配置するもので、これは高度なルートに一致するコンポーネントをレンダリングする最上位の出口です。 🎜🎜ルーティング設定から、パスが /user/Xiaoming または /user/小红 の場合、ユーザーがページにレンダリングされ、このレンダリングがトップレベルのルートであることがわかります。 (:id はシャオミンとシャオホンです)。 このページにはネストされたルートがあり、URL が /user/Xiao Ming の場合、この 2 番目のルートは /user/Xiao Ming のみであっても表示されません。何か。その後、パス「」に対応するルートを設定して、/user/Xiao Ming でもさらに表示できるようにします。 🎜🎜Xiao Ming の個人ホームページを表示したい場合は、/user/Xiao Ming/profile になります。その後、UserProfile コンポーネントがこのセカンダリ ルートにレンダリングされます。 🎜🎜Xiao Ming によって公開された記事を読みたい場合は、/user/Xiao Ming/posts になります。その後、UserPost コンポーネントがこのセカンダリ ルートにレンダリングされ、これもセカンダリ ルートになります。 🎜🎜実はコンセプトはこれくらいしかなくて、とてもシンプルですよね! 🎜🎜この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイト🎜その他の🎜関連記事に注目してください。 🎜🎜推奨書籍: 🎜🎜🎜vue を使用してコンポーネントを登録する方法🎜🎜🎜🎜 H5 で data-* 属性を使用する方法の概要🎜🎜以上がVue のネストされたルーティングと 404 リダイレクトの実装メソッド分析_vue.jsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。