37
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nuxt.jsで異なるコンポーネントから共通で利用できる関数を定義する(mixin編)

Last updated at Posted at 2019-10-17

異なるコンポーネントから共通で利用できる関数を定義したかったので、試してみました。

今回はmixinの機能を利用しましたが、injectの機能を利用することもできるようです。
こちらについても、今度試してみようと思います。

試しました
asyncDatafetch 等のSSR時も関数を利用できるため、こちらの方が良いかもしれません。

mixinに関数を定義する

plugins/ 内に mixin-common-methods.js というファイルを作成し、ここに関数を定義していきます。
今回は例として truncate(str, length) という、文字列が指定された文字数以上の場合は省略する関数を定義するものとします。

plugins/mixin-common-methods.js
import Vue from 'vue'

Vue.mixin({
  methods: {
    truncate(str, length) {
      return str.length <= length ? str: (str.substr(0, length) + "...");
    }
  }
})

nuxt.config.jsに設定を追加

nuxt.config.js に設定を追加します。

nuxt.config.js
plugins: [
  '@/plugins/mixin-common-methods'
],

コンポーネントからの利用

コンポーネントからは、下記のように利用することができます。

pages/index.vue
<script>
export default {
  methods: {
    hoge() {
      return this.truncate('省略したい文字列', 5);
    }
  }
}
</script>

以上!

37
27
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
37
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?