@@ -5,8 +5,10 @@ description: Nuxt.js では js プラグインを定義することができ、
5
5
6
6
> Nuxt.js では js プラグインを定義することができ、それはルートの Vue.js アプリケーションがインスタンス化される前に実行されます。プラグインとして自前のライブラリを指定することも、外部のモジュールを指定することもできます。
7
7
8
+
8
9
<div class =" Alert " >Vue インスタンスの [ライフサイクル](https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram) において、`beforeCreate` と `created` フックのみが **クライアントサイドとサーバーサイドの両方** で呼び出されることに注意してください。それ以外のすべてのフックはクライアントサイドでのみ呼び出されます。</div >
9
10
11
+
10
12
## 外部パッケージの利用
11
13
12
14
アプリケーションに外部パッケージ/モジュールを使いたいときがあるでしょう。例えばサーバーでもクライアントでも HTTP リクエストを送れる [ axios] ( https://github.com/mzabriskie/axios ) などが良い例です。
@@ -23,10 +25,8 @@ npm install --save axios
23
25
<template >
24
26
<h1 >{{ title }}</h1 >
25
27
</template >
26
-
27
28
<script >
28
29
import axios from ' axios'
29
-
30
30
export default {
31
31
async data ({ params }) {
32
32
let { data } = await axios .get (` https://my-api/posts/${ params .id } ` )
@@ -57,15 +57,14 @@ module.exports = {
57
57
``` js
58
58
import Vue from ' vue'
59
59
import VueNotifications from ' vue-notifications'
60
-
61
60
Vue .use (VueNotifications)
62
61
```
63
62
64
63
それから ` nuxt.config.js ` の ` plugins ` キーにファイルを記述します:
65
64
66
65
``` js
67
66
module .exports = {
68
- plugins: [' ~plugins/vue-notifications' ]
67
+ plugins: [' ~/ plugins/vue-notifications' ]
69
68
}
70
69
```
71
70
@@ -94,13 +93,10 @@ module.exports = {
94
93
import Vue from ' vue'
95
94
import VueI18n from ' vue-i18n'
96
95
import store from ' ~store'
97
-
98
96
Vue .use (VueI18n)
99
-
100
97
const i18n = new VueI18n ({
101
98
/* ここにオプションを書きます */
102
99
})
103
-
104
100
export default i18n
105
101
```
106
102
@@ -122,7 +118,7 @@ module.exports = {
122
118
123
119
## クライアントサイド限定のプラグイン利用
124
120
125
- プラグインのいくつかは ** ブラウザでのみ** 動かしたいとします。その場合は ` plugins ` 内の ` ssr: false ` オプションを使うと、プラグインをクライアントサイドでのみ実行させるが可能です 。
121
+ プラグインのいくつかは ** ブラウザでのみ** 動かしたいとします。その場合は ` plugins ` 内の ` ssr: false ` オプションを使うと、プラグインをクライアントサイドでのみ実行させることが可能です 。
126
122
127
123
例:
128
124
@@ -141,8 +137,9 @@ module.exports = {
141
137
``` js
142
138
import Vue from ' vue'
143
139
import VueNotifications from ' vue-notifications'
144
-
145
140
Vue .use (VueNotifications)
146
141
```
147
142
148
143
逆に、サーバーサイドでのみライブラリを読み込む必要がある場合は、` process.server ` 変数を使うことができます。これは Webpack が ` server.bundle.js ` ファイルを作成するタイミングで ` true ` がセットされる変数です。
144
+
145
+ また、もしあなたが生成されたアプリケーション (` nuxt generate ` コマンドによって) の中にいるかどうか知る必要がある場合は、生成から以降ずっと ` process.static ` 変数に ` true ` がセットされているかでチェックできます。保存前に ` nuxt generate ` コマンドによって、ページがサーバレンダリングされている時の状態を知るには、` process.static && process.server ` を使うことができます。
0 commit comments