回答編集履歴

1

追記

2018/11/26 13:52

投稿

NozomuIkuta
NozomuIkuta

スコア1260

test CHANGED
@@ -7,3 +7,43 @@
7
7
 
8
8
 
9
9
  ログインページに認証機能を実装し、認証に成功したらVuexにユーザー情報を格納し、middlewareでページを移動するタイミングでVuexにユーザー情報があるか(初期値をnullなどにしておく)をチェックするのが基本的な流れです。
10
+
11
+
12
+
13
+ ## 追記(2018/11/25)
14
+
15
+ Nuxt.jsがどう動くかは、[公式サイトに記載](https://ja.nuxtjs.org/guide/#%E5%9B%B3%E8%A7%A3)があります。
16
+
17
+ 通常のVue.jsアプリケーションとの違いは、以下の通りです。
18
+
19
+
20
+
21
+ **通常のVue.jsアプリケーション**
22
+
23
+ index.html(ビルド済みのJSファイルがリンクしている)を返して、ブラウザでJavaScriptが実行され、該当のページ(コンポーネント)が表示される。検索bot等からはページがひとつのように見える。
24
+
25
+
26
+
27
+ **Nuxt.jsを使用した場合**
28
+
29
+ サーバへのリクエストに基づいて、該当のページ(コンポーネント)のHTML(ビルド済みのJSファイルがリンクしている)を返して、ブラウザでSPAとして動作する。検索bot等からは各ページがあるように見える。
30
+
31
+
32
+
33
+ つまり、極論「ブラウザでSPAとして動作する前に、サーバ側でもろもろ状態(State)の初期化と必要なページのレンダリングができるよ」というだけで、一度ブラウザに移った後は(Nuxt.js特有の処理はありますが)普通のSPAです。
34
+
35
+ Nuxt.jsのドキュメントを読んだとき「クライアントだけで呼ばれる」「サーバだけで呼ばれる」「両方で呼ばれる(から、バグらないようにどちらかだけになるよう分岐する)」などの説明があることがありますが、上記が理由です。
36
+
37
+
38
+
39
+ ブラウザで動くSPAでは、ユーザー情報はVuexで管理すればOKです。
40
+
41
+ ただ、「一度サイトを離脱するなどしても、ログイン状態を維持していたい」などの仕様があれば、
42
+
43
+ 別途セッションの管理が必要(ログイン成功したら、そのタイミングでクッキーを設定する等)です。
44
+
45
+ Firebaseを使っているのであれば、セッション管理の機能があります。調べてみてください。
46
+
47
+
48
+
49
+ 回答になっていれば幸いです。