Vue ノート(3):SPAとVueルーター
サーバー側とクライアント側のルーティング
1.サーバー側ルーティング
クライアントはURLが変更されるたびにサーバーにリクエストを送信するため、これを「サーバー側ルーティング」と呼びます。
2.クライアント側ルーティング
ルーティングはJavaScriptを使用してブラウザー自体で行われます。Webページは1つのindex.htmlページから読み込まれ、クライアント側のルーティングを使用して、クリックされたリンクに応じて、さまざまなビューを動的に表示できます。多くの場合、表示する必要のあるビューはすでにブラウザーにロードされているため、サーバーにアクセスする必要はありません。
3.単一ページのアプリケーション(SPA)
1つのHTMLをロードして,ユーザーインタラクションに応じて動的にページを更新するWebアプリケーションです。ただし、単一ページアプリケーションを使用している場合は、コンテンツ間を移動する方法(クライアント側ルーティング)が必要です。
Vueルーター
配置場所:
/router/index.js
import Vue from "vue";
import VueRouter from "vue-router";
import Home from "../views/Home.vue";
Vue.use(VueRouter);
const routes = [
{
//URLの観点から、実際のルートを示します
path: "/",
//ルートを参照するためにアプリケーション全体でその名前を使用する
name: "Home",
//ルートでレンダリングするためにどのコンポーネントを指定する
component: Home
},
{
path: "/about",
name: "About",
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () =>
import(/* webpackChunkName: "about" */ "../views/About.vue")
}
];
App.vue
<router-link></router-link>
router-link: 特定のルートにリンクすることを目的とする(vue-routerライブラリの)コンポーネントです。そして本質的には、コンポーネントのコンテンツがページにレンダリングされるプレースホルダーです。
router-view: router-linkで指定されたコンポーネントが表示されている場所に読み込まれます。
例えば、リンク/aboutをクリックしたら、views/App.vueの内容が「router-view」のところに表示されます
<template>
<div id="app">
<div id="nav">
<router-link :to="{name:'Home'}">Home</router-link>
<router-link :to="{name:'About'}">About</router-link>
</div>
<router-view />
</div>
</template>
redirectとエイリアス
要件:/aboutを/about-usへ変更しましたが、/aboutで同じく変更前のコンテンツにアクセスするできるようにしたい。
ソリューション1:redirect
{
path: "/about-us",
name: "About",
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () =>
import(/* webpackChunkName: "about" */ "../views/About.vue")
},
{
path:"/about",
redirect:{name:"About"}
}
ソリューション2:エイリアス
{
path: '/about-us',
name: 'About',
component: About,
alias:'/about'
}
ユーザーは/aboutと/about-usに移動すると、同じコンテンツを取得したりできます。
Author And Source
この問題について(Vue ノート(3):SPAとVueルーター), 我々は、より多くの情報をここで見つけました https://qiita.com/joycho/items/65566f9f5463a08e2225著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .