課題を持った人
Nuxt.jsで外部モジュールを使いたいです。方法を教えてください。
筆者
わかりました。今回はvue-scrollto(要素をクリックするとスクロールしながら指定の場所まで移動する)の導入方法を例に見ていきましょう。
Nuxt.jsのインストールがまだの方は、こちらの記事を参考にインストールしていただき、実際に手を動かしながら進めるとわかりやすいと思います。
スポンサードサーチ
目次
vue-scrolltoをインストールする
まず、npmからパッケージをインストールします。上がyarnを使っていストールするためのコマンドで、下がnpmを使ってインストールするためのコマンドです。
1 2 | yarn add vue-scrollto // yarnを使う場合 npm install --save vue-scrollto // npmを使う場合 |
pluginsディレクトリにvue-scrollto.jsを作成する
次に、plugins/に、vue-scrollto.jsを作成します。vue-scrollto.jsには以下のコードを入力します。
1 2 3 4 5 6 7 8 | import Vue from 'vue' import VueScrollTo from 'vue-scrollto' Vue.use(VueScrollTo, { duration: 700, easing: [0, 0, 0.1, 1], offset: -100 }) |
基本的に下記の手順で書いていきます。
- Vue.jsをインポート
- vue-scrolltoをインポート
- Vue.use()メソッドでVueアプリケーションでモジュールを使用できるようにする。第一引数にモジュールのオブジェクトを渡して、必要に応じて第二引数にオプションを渡す。
nuxt.config.jsのpluginsオプションにvue-scrolltoを登録する
最後に、どのページからもvue-scrolltoを使用できるようにnuxt.config.jsのpluginsオプションにvue-scrolltoを登録します。
1 2 3 4 5 | export default { plugins: [ '~plugins/vue-scrollto' ] } |
他のモジュールを登録する場合は、モジュールをカンマで区切って次のように書きます。下記の例ではvue-lazyloadをオブジェクトの形で登録しています。オブジェクトのプロパティはモジュールファイルのパスを書くsrcとプラグインタイプを指定するためのmode(値は、clientまたはserver)があります。詳しくはNuxt.js公式サイトをご確認ください。
1 2 3 4 5 6 | export default { plugins: [ '~plugins/vue-scrollto', { src: '~/plugins/vue-lazyload', mode: 'client' } ] } |
以上で設定は完了です。
vue-scrolltoの動作確認をする
pages/のvueファイルに下記のコードを追加して、vue-scrolltoが正常に動作するか確認してみましょう。
1 2 | <nuxt-link v-scroll-to="'#anchor'" to>出発</nuxt-link> <div id="anchor" style="margin-top:2000px;">到着!</div> |
「出発」の文字をクリックすると、「到着!」の文字までスクロール移動したら成功です。
外部モジュールを使い方をまとめておきます。
- 外部モジュールをインストールする(npm公式サイトから探す)
- plugins/にモジュールの設定をする
- nuxt.config.jsのpluginsオプションにモジュールを登録する
筆者
以上、Nuxt.jsで外部モジュールを使う方法でした。
スポンサードサーチ
スポンサードサーチ