Open yuyuyuriko78 opened 4 years ago
npm install
npm install vue-router
import Vue from "vue";
import Router from "vue-router";
Vue.use(Router);
export default new Router({
mode: "history",
routes: [
//ルーティングの設定
]
});
import routers from './router'
new Vue ({...})
の中に router: routers,
を追加
import Vue from 'vue'
import App from './App.vue'
import router from './router'
Vue.config.productionTip = false
new Vue({ router, render: h => h(App), }).$mount('#app')
components
フォルダではなくviews
フォルダに入れる
views > Sample.vue
<template>
<div class="Sample">
<h1>サンプル−ページ</h1>
<p>このコンポーネントが表示されます</p>
</div>
</template>
<router-view></router-view>
に表示される
<template>
<div id="app">
<p>↓ここに表示されます</p>
<router-view></router-view>
</div>
</template>
***
## ③routerの設定 / router > index.js または src > router.js
- `mode`
- `history`モード: 設定が必要で通信が発生し遅いが、URLに`#`が入らない。*基本こっち*
- `hash`モード: 設定が簡単で動きも速いが、URLに`#`が入る。
- VueRouterインスタンスの中の`routes`に、連想配列の形で設定を定義する
パラメタ名 | 機能
--- | ---
path | このURLにアクセスしたら
component | このコンポーネントに飛ぶ
name | ルーティングの名前 ※省略可
```js
import Vue from 'vue';
import VueRouter from 'vue-router';
import Top from '@/views/Top';
import Sample from '@/views/Sample';
import NotFound from '@/views/NotFound';
Vue.use(VueRouter);
const routers = new VueRouter({
mode: 'history',
routes: [
{
path: '/',
name: '',
component: Top,
},
{
path: '/sample1',
name: 'sample',
component: Sample,
},
{
path: '*',
name: 'notFound',
component: NotFound,
},
],
});
export default routers;
<template>
<div id="test">
<nav>
<router-link to="/">トップ</router-link>
<router-link to="/sample1">サンプル1</router-link>
</nav>
</div>
</template>
<template>
<div id="page-top">
<Button v-on:click="gotoNew">新しい本を追加</Button>
</div>
</template>
<script>
export default {
name: 'Top',
methods: {
gotoEdit(bookId) {
this.$router.push(`/edit/${bookId}`);
},
gotoNew() {
this.$router.push('/new');
Vue Router