0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ミニマムなVue.jsコンポーネントプログラミングその2(ルータ実装)

Last updated at Posted at 2020-04-26

前回、"Hello, vue.js"を静的にレンダリングするだけのミニマムなシングルコンポーネントを持ったプロジェクトを作成しましたので、それをベースに拡張していきたいと思います。今回の趣旨はミニマムなルータ制御です。SPA的なクライアントアプリを組むためにはルータ機能が必要です。

やるべきことは、以下です。

  • App.vueは(ほぼ)抽象的なアプリケーションコンポーネント(画面の入れ物)とする。
  • 唯一の画面として、Home画面(コンポーネント)を追加する。
  • vue-routerでHome画面を表示させる。

Home画面作成

h1要素を持つだけのシンプルなコンポーネントです。vue-cliが自動生成してくれるようなフォルダ構成でちまちま作っていきます。

src/vies/Home.vue

<template>
  <div>
      <h1>これはほーむがめんです</h1>
  </div>
</template>

<script>
export default {
    name: 'Home'
}
</script>

ルータ追加

画面遷移をコントロールするルータを追加します。

(1)ルータライブラリインストール

npm install vue-router

(2)ルータ実装(src/router/index.js)

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue' 

Vue.use(VueRouter)

const routes = [
    {
        path: '/',
        name: 'Home',
        component: Home
    }
]

const router = new VueRouter({
    routes
})

export default router

ルート('/')とHome画面(コンポーネント)を連結させただけの
ミニマムなルータです。

(3) Vueインスタンスにルータ追加(src/main.js)


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')

こうやって、Vueインスタンスにいろんな機能モジュール(コンポーネント)を突っ込んでおくと、Vueインスタンスに対してフレームワークがいろいろよしなにさばいてくれるんですねぇ。

こうしてながめると、router/index.jsで作ったルータも一種のコンポーネントとしてとらえたほうがいいかな。

(4) Appコンポーネントにルータ(によるView)を埋め込む(src/App.vue)


<template>
  <div>
    <router-view/>    <== ココ
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

npm run serveして、localhost:8081すると、
範囲を選択_012.png

補足

今回のやったことはつまり、

  1. 抽象的なアプリケーションコンポーネントを用意する。
    (複数の画面を持つアプリケーションとして、Appコンポーネントを定義する)
  2. HOME画面を用意する。
  3. '/'をHOME画面と接続したルータ用意。
  4. アプリケーションにルータをジョイント。

って感じです。

次はサブコンポーネントを扱っていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?