Vue js router-view , router-linkについて

過去記事の続きです。

 

kirikko-scondcube.hatenablog.com

kirikko-scondcube.hatenablog.com

 

 

今回最初に操作するのは

src/App.vue

 

App.vue

<template>
<div id="app">
<div id="nav">
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</div>
<router-view/>
</div>
</template>

<style lang="scss">
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
}

#nav {
padding: 30px;

a {
font-weight: bold;
color: #2c3e50;

&.router-link-exact-active {
color: #42b983;
}
}
}
</style>

 

ここで注目するのが

<template>
<div id="app">
<div id="nav">
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</div>
<router-view/>
</div>
</template>

 

この

<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>

<router-view/>
 の部分
 
この2つはrouter/index.js内でルーターモジュールを読み込んだことで使えるようになる。
*疑問点*
ルーターモジュールとは??

 

<router-view/>
について 
この部分にルートに合わせたコンポーネント が表示される。
そのため全てのページで使用するグローバルビューはこの部分の外側に記述する
 
 
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>

について

これはデフォルトの内容で

Homeとaboutのページを行き来するためにしようされている。

上記「to='/'」のように記述しパスを指定する。

 

ルートに名前をつけて指定することも可能

その場合は以下のように書き換える

<router-link to="{name: 'home'}">Home</router-link> |
<router-link to="{name: 'about'}">About</router-link>

この記述方法のメリットはパスが変わっても適用可能と言う点にある。 

基本はこちらが推奨される。

 

また、内のHome, Aboutの記述を帰ればリンクを変更できる

(文字列を変えたりimgにリンクを貼れたりする)

<router-link to="{name: 'home'}"><img width='100' src="https://images.unsplash.com/photo-1595970731082-f7267436b6f1?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=60" alt=""></router-link> |
<router-link to="{name: 'about'}">アバウト</router-link>
 
結果

f:id:kirikko_Scondcube:20200801013055p:plain

このように変更することも可能