Web開発に携わってからPug
という便利なものを知りました。(遅い)
この記事では、Vue.jsにPug
を導入する方法を記載していきます。
Pug
とは?
本記事ではざっくり解説になりますので、詳細知りたい方は以下記事を参照していただけると幸いです。
ざっくり解説
Pug
はHTMLを楽に書くためのテンプレートエンジンです。
ざっくりこんな書き方ができます。
html
<html lang="en"> <head> <meta charset="utf-8"> <title>sample</title> </head> <body> <div id="app"></div> </body> </html>
pug
html(lang='en') head meta(charset='utf-8') title sample body #app
Pug
は、タグの閉じ忘れを心配する必要がなくなりますので、以下のような方におすすめです。
導入やっていき
実際にPug
を導入した以下リポジトリを元に導入手順と解説を記載していきます。
README.mdに実際に導入した方法を記載していますので、そちらを参照していただいても構いません。
手順
公式リファレンスにて導入方法が記載されていました。
自分にわかるように咀嚼しながら手順を書いていきます。
pug
,pug-plain-loader
の導入
# Vue.jsのプロジェクト作成 vue init webpack-simple vue-pug-sample # Pugの導入 yarn add pug pug-plain-loader
webpack.config.jsへの追記
module.exports = { module: { rules: [ // ここから { test: /\.pug$/, loader: 'pug-plain-loader' } // ここまで ] } }
*.vueのテンプレート構文をPug
記法に修正
「src/App.vue」を例にbefore,afterを記載します。
HTML
とJade
/Pug
を相互変換指定くれるサイトがありますので、ありがたく使わせていただきましょう。
before
<template> <div id="app"> <img src="./assets/logo.png" /> <h1>{{ msg }}</h1> <h2>Essential Links</h2> <ul> <li><a href="https://vuejs.org" target="_blank">Core Docs</a></li> <li><a href="https://forum.vuejs.org" target="_blank">Forum</a></li> <li><a href="https://chat.vuejs.org" target="_blank">Community Chat</a></li> <li><a href="https://twitter.com/vuejs" target="_blank">Twitter</a></li> </ul> <h2>Ecosystem</h2> <ul> <li><a href="http://router.vuejs.org/" target="_blank">vue-router</a></li> <li><a href="http://vuex.vuejs.org/" target="_blank">vuex</a></li> <li><a href="http://vue-loader.vuejs.org/" target="_blank">vue-loader</a></li> <li><a href="https://github.com/vuejs/awesome-vue" target="_blank">awesome-vue</a></li> </ul> </div> </template>
after
<template lang="pug"> #app img(src='./assets/logo.png') h1 {{ msg }} h2 Essential Links ul li a(href='https://vuejs.org', target='_blank') Core Docs li a(href='https://forum.vuejs.org', target='_blank') Forum li a(href='https://chat.vuejs.org', target='_blank') Community Chat li a(href='https://twitter.com/vuejs', target='_blank') Twitter h2 Ecosystem ul li a(href='http://router.vuejs.org/', target='_blank') vue-router li a(href='http://vuex.vuejs.org/', target='_blank') vuex li a(href='http://vue-loader.vuejs.org/', target='_blank') vue-loader li a(href='https://github.com/vuejs/awesome-vue', target='_blank') awesome-vue </template>
実行
この後、yarn run dev
で問題なく表示できればOKです。
おわり
以上になります。
Pug
は、最初に書き方について戸惑うと思いますが、書いていくうちに生のHTMLを書くときのわずらわしさがなくなり、しっくり馴染んでくると思います。
もし、興味があればためしに導入してみてください。
また、何か間違い等ありましたら、FBいただけると嬉しいです!