Atsuhiko / Web-App

Webアプリ研究会
2 stars 2 forks source link

Vue-Router #24

Open yuyuyuriko78 opened 4 years ago

yuyuyuriko78 commented 4 years ago

Vue Router

yuyuyuriko78 commented 4 years ago

環境構築

yuyuyuriko78 commented 4 years ago

ディレクトリ・ファイル構成

src

yuyuyuriko78 commented 4 years ago

準備

router > index.js または src > router.js

import Vue from "vue";
import Router from "vue-router";

Vue.use(Router);

export default new Router({
  mode: "history",
  routes: [
    //ルーティングの設定
  ]
});

main.js

Vue.config.productionTip = false

new Vue({ router, render: h => h(App), }).$mount('#app')

yuyuyuriko78 commented 4 years ago

使い方

①表示させるVueコンポーネント作成 / views > 各種vueファイル


②表示する場所の設定 / App.vue


***
## ③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;

④ここを押す表示させるよ!というボタンなど設定

バージョン1:HTMLに埋め込む

<template>
  <div id="test">
    <nav>
      <router-link to="/">トップ</router-link>
      <router-link to="/sample1">サンプル1</router-link>
    </nav>
  </div>
</template>

バージョン2:メソッドで飛ぶ this.$router.push('/new');

<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');
yuyuyuriko78 commented 4 years ago

iOS の画像 (3)