LoginSignup
5
1

More than 3 years have passed since last update.

【Nuxt.js】Copyrightで今年の年を自動で表示させる

Last updated at Posted at 2020-03-07

年明けにCopyrightの年号を変えるのは毎回面倒なので、便利な方法としてJavascriptで自動更新する方法があります。
Javascriptで自動的に変える方法は調べたらよく出てくるのですが、Vue.jsで実装されたものが出てこなかったのでその実装方法をまとめておきます。

JavaScriptで年号表記を自動更新

まずは定番、JavaScriptで年号表記を自動更新する方法

index.html
&copy; <script>document.write(new Date().getFullYear());</script> Company.

こちらをCopyrightの部分に埋め込めば2020年なら

© 2020 Company.

と表示されます。

Vueで書いてみよう

createdで現在の年数を取得し、nowに保存し出力する。

index.vue
<template>
  <p class="copyright">
   &copy; {{ now }} Company.
  </p>
</template>

<script>
export default {
  data: () => {
    return {
      now: '' //取得した年数を格納
    };
  },
  created () { //年数を取得
    const d = new Date()
    this.now = d.getFullYear()
  }
}
</script>

するとこのように出力されます。

index.html
<p class="copyright">© 2020 Company.<p>

v-htmlでまとめる

更にdataに前後のコピーライトのテキストをセットしv-htmlで出力するやり方もあります。

index.vue
<template>
  <p class="copyright" v-html="copy + ' ' + now + ' ' + copyright"></p>
</template>

<script>
export default {
  data: () => {
    return {
      copy: '&copy;',
      now: '',
      copyright: 'Company.'
    };
  },
  created () {
    const d = new Date()
    this.now = d.getFullYear()
  }
}
</script>

注意:
&copy;はHTML特殊文字なので{{}}v-textではそのまま出力されてしまうのでv-htmlにしないと変換されません。

テンプレートリテラルで書いた場合

index.vue
<template>
  <p class="copyright" v-html="`${copy} ${now} ${copyright}`"></p>
</template>

<script>
export default {
  data: () => {
    return {
      copy: '&copy;',
      now: '',
      copyright: 'Company.'
    };
  },
  created () {
    const d = new Date()
    this.now = d.getFullYear()
  }
}
</script>
5
1
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
5
1