Vue Routerは、プログレッシブJavaScriptフレームワークであるVue.jsの公式ルーターです。これは、フルページのリロードを必要とせずにアプリケーション内でナビゲーションとルーティングを管理できるため、シングルページアプリケーション(SPA)を構築するための重要なコンポーネントです。代わりに、ページの必要な部分のみを更新し、よりスムーズで応答性の高いユーザーエクスペリエンスを作成します。
SPAナビゲーションにVueルーターを使用するには、最初にNPMまたはYARNを使用してインストールする必要があります。
<code class="bash">npm install vue-router # or yarn add vue-router</code>
次に、ルーターインスタンスを作成します。
<code class="javascript">import { createRouter, createWebHistory } from 'vue-router'; import Home from './components/Home.vue'; import About from './components/About.vue'; import Contact from './components/Contact.vue'; const routes = [ { path: '/', component: Home }, { path: '/about', component: About }, { path: '/contact', component: Contact }, ]; const router = createRouter({ history: createWebHistory(), routes, }); export default router;</code>
このコードは、3つのコンポーネント( Home
、 About
、 Contact
)のルートを作成します。 createWebHistory
、クリーナーURLにブラウザのHistory APIを使用します。また、テストまたはサーバー側のレンダリングにcreateMemoryHistory
使用することもできます。
最後に、メインアプリケーションでルーターインスタンスを使用する必要があります。
<code class="javascript">import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app');</code>
これで、 /about
または/contact
をナビゲートすると、フルページがリロードされずに対応するコンポーネントがレンダリングされます。アプリケーション内のリンクは、 <router-link></router-link>
コンポーネントを使用できます。
<code class="vue"><router-link to="/about">About</router-link></code>
ネストされたルートを使用すると、ネストされたナビゲーションメニューまたは組織構造を反映して、アプリケーション内に階層構造を作成できます。これは、親ルートのchildren
プロパティ内で育児ルートを定義することによって達成されます。
<code class="javascript">const routes = [ { path: '/users', component: Users, // Parent component children: [ { path: ':id', component: UserDetail }, // Child route with parameter { path: 'new', component: UserCreate }, // Child route ], }, ];</code>
この例では、 /users
親ルートです。 /users/:id
動的セグメントを持つ子ルートです:id
、ユーザーのIDを表します。 /users/new
新しいユーザーを作成するための別の子ルートです。アクセス:id
UserDetail
コンポーネント内のIDパラメーターは$route
オブジェクトを介して行われます。
<code class="javascript"><template> <p>User ID: {{ $route.params.id }}</p> </template></code>
ルートパラメーターを使用すると、データをURLに渡すことができ、アプリケーションをより動的にします。それらは、パス内のパラメーター名の前にコロン( :
を使用して定義されます。
ルートを効果的に構築することは、保守性とスケーラビリティにとって重要です。ここにいくつかのベストプラクティスがあります:
name
プロパティを使用してルート名を付けます。これにより、ナビゲーションが簡素化され、コードがきれいになります。<code class="javascript">{ path: '/about', name: 'About', component: About }</code>
次に、名前を使用してナビゲートします。
<code class="javascript">this.$router.push({ name: 'About' })</code>
beforeEnter
、 beforeEach
前)を使用して、認証またはその他の条件に基づいて特定のルートへのアクセスを制御します。push
、 replace
、 go
)の違いは何ですか?Vue Routerは、ナビゲーションのためのいくつかの方法を提供します。
push(location)
:これは最も一般的な方法です。新しい履歴エントリが追加され、ユーザーはブラウザのバックボタンを使用して前のページに戻ることができます。replace(location)
:これも新しい場所に移動しますが、履歴スタックの現在のエントリを交換します。ユーザーは、戻るボタンを使用して前のページに戻ることができません。go(n)
:このメソッドは、履歴スタックをn
ステップで前または後方に移動します。 go(1)
、フォワードボタンをクリックするのと同等です。Go go(-1)
は、バックボタンをクリックするのと同等です。違いを要約するテーブルは次のとおりです。
方法 | 履歴エントリを追加します | 現在のエントリを交換します | バックボタンの機能 |
---|---|---|---|
push |
はい | いいえ | 有効になっています |
replace |
いいえ | はい | 無効 |
go(n) |
n に依存します |
n に依存します |
n に依存します |
適切な方法を選択することは、特定のニーズに依存します。一般的に、ほとんどのナビゲーションシナリオではpush
が好まれますが、 replace
はユーザーが前のページに戻ることができない状況に役立ちます(たとえば、フォームの提出の成功後)。 go
、履歴スタックをより詳細に制御します。
以上がVueルーターとは何ですか?また、シングルページアプリケーション(SPA)ナビゲーションに使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。