サイトアイコン 上尾市のWEBプログラマーによるブログ

「Nuxt.jsビギナーズガイド」の感想・備忘録3

「Nuxt.jsビギナーズガイド」の感想・備忘録2の続き

Nuxt.jsの基本

レイアウト

<template>
  <ul>
    <li><nuxt-link to="/">home</nuxt-link></li>
    <li><nuxt-link to="/axios">axios</nuxt-link></li>
  </ul>
</template>
<template>
  <div>
    <AppNavigation />
    <hr>
    <nuxt/>
  </div>
</template>

<script>
import AppNavigation from '~/components/AppNavigation.vue'
export default {
  components: {
    AppNavigation
  }
}
</script>

複数のレイアウトの管理

export default {
  layout: 'single',
  // 以下省略
}

最も利用するテンプレートをdefault.vueとし、利用が少ないテンプレートを別のファイル名で作成するべきである。 (default.vueは使用時にlayout: 'default'と記述する必要がないため)

ミドルウェアとは

export default () => {
  if (process.browser) {
    console.log('browser');
  } else {
    console.log('SSR');
  }
}
router: {
  middleware: [
    'hoge',
  ]
},
export default ({route, redirect}) => {
  if (route.path === '/test1') {
    return redirect('/test2')
  }
}

プラグインとは

プラグインのサンプル

VueRouterのbeforeEachフックでロギングするサンプル。

export default ({ app }) => {
  app.router.beforeEach((to, from, next) => {
    console.log(`[ROUTER] move to '${to.fullPath}'`)
    next()
  })
}
plugins: [
  { src: '~/plugins/logger', ssr: true }
],
モバイルバージョンを終了