Vue.js/vueファイルを使う

Vue.js/vueファイルを使う

Vue にはコンポーネントという考え方があって、部品化しやすいようになっている。 部品とは何かといえば、骨格となる HTML、その見た目の CSS、挙動を表す JS を統合したものとなる。

この3つを統合して書けるのが .vue という ファイルになる。

webpack の準備 Loader のインストール

webpack は標準で js はビルドできるが vueファイルは知らんので、 vue ファイルを呼んでビルドするためのプラグインを入れる。 こういう webpack にファイルの読み方を拡張するプラグインを loader と呼ぶ。

その名もズバリ vue-loader をインストールする。vue-template-compiler というのも合わせて必要になるのでインストールする

$ npm install --save-dev vue-loader vue-template-compiler

OK

webpack の準備 Loader の設定

webpack.config.js に vue-loader の設定を書く。

const VueLoaderPlugin = require('vue-loader/lib/plugin')
 
module.exports = {
    entry: "./src/hoge.js",
    module: {
        rules:[{
            test: /\.vue$/,
            loader: "vue-loader"
        }]
    },
    plugins: [
        new VueLoaderPlugin()
    ]
};

拡張子 .vue だったら vue-loader だぜということのようだ。

vue ファイルの用意

./src/hoge.vue ファイルを作る

このようなファイルになる。

<template>

<div>{{ say }}</div>

</template>

<script>

export default {
    data: function(){
        return {
            say: "HelloWorld"
        };
    }
}

</script>

js だけのファイルの時に template という項目があったが、それがタグになって上部に切り出された感じである。

script は script でよくわからない記述になっている。

この export default というのは ES6 の仕様で、このファイルが import された際に何も指定がなければ、この内容が返るという意味である。

エントリーポイントへの組み込み

エントリーポイントへはこのように組み込む。

import Vue from "vue"
import Hoge from "./Hoge.vue"
 
document.addEventListener("DOMContentLoaded", () => {
    new Vue({
        el: "#app",
        render: a => a(Hoge)
    });
});

ビルド

全部出来たので、後は webpack でビルドすれば OK である。

javascript/vuejs/use_vue_file.txt · 最終更新: 2018-11-15 18:48 by ore