yuheijotaki.com

WordPress に Vue.js を スモールスタートで入れてみる その2

とあるサイトでVue.jsで作っていて、公開してからもろもろやったことまとめ その2

f:id:jotaki:20190212100544p:plain

基本構造 WordPress の各テンプレートファイルからVue.jsを呼び込む

トップページの場合、 homeGallery.vue には Vue ( <template><script> ) を書いていく感じ。

▼ app.js

import Vue from 'vue'

// import文を使ってSassファイルを読み込む。(これがないと.scss => .cssへコンパイルされない)
import './../scss/app.scss';

// Variable
import {
  APP_ID
} from './variable';

// Vue Component
import HomeGallery from './component/homeGallery';

// Home
window.renderHome = function () {
  new Vue({
    el: `#${APP_ID}`,
    components: {
      HomeGallery
    }
  });
}

▼ front-page.php

<?php get_header(); ?>
  <home-gallery></home-gallery>
<?php get_footer(); ?>

▼ footer.php

<script type='text/javascript' src='/_assets/js/bundle.js'></script>
<?php if ( is_front_page() ) : ?>
  <!-- トップページ -->
  <script>
    document.addEventListener('DOMContentLoaded', function() {
      renderHome()
    })
  </script>
<?php endif; ?>

定数用の.jsファイル

js/variable.js では定数の管理を行って各.vueにexportする

const APP_ID = `app`;

// サイト情報
const SITE_INFO = {
  name: 'siteName',
  url: `https://siteUrl.com`
}

// APIのベースURL
const API_POST_URL = `${SITE_INFO.url}/wp-json/wp/v2`;
const API_OPTION_URL = `${SITE_INFO.url}/wp-json/acf/v3/options/options/`;

export {
  APP_ID,
  SITE_INFO,
  API_POST_URL,
  API_OPTION_URL
};

全体構成編、ちょっと長くなったのでここまで。
次回はもう少し細かい内容になる予定です。