【Vue】Vue ~ 基本編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/04/30/000000

の続き。

目次

【1】関連用語
 1)コンポーネント (Component)
 2)マウント (Mount)
 3)Nuxt(ナクスト)
 4)Babel (バベル)
【2】ページの基本的な構成
【3】Vue のライフサイクル

【1】関連用語

1)コンポーネント (Component)

* Vue の機能の1つで、
 Webページを部品(e.g. ヘッダー、フッター)にして再利用できる
 ⇒ この部品を、コンポーネント になる。

2)マウント (Mount)

* コンポーネントがDOM(Document Object Model)要素を追加されること

3)Nuxt (ナクスト)

* Nuxt(ナクスト)
 = Vue + Vuex + Vue Router + asyncData + ServerSideRendering

Vuex
https://vuex.vuejs.org/ja/guide/

* システム全体のグローバル変数みたいなもの
* React でいう Redux
* 詳細は、以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2021/01/11/041127

Vue Router

* 詳細は、以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2020/12/24/000000
https://dk521123.hatenablog.com/entry/2021/01/20/165026
https://dk521123.hatenablog.com/entry/2021/03/02/001653

asyncData

* 非同期でデータをとってくる仕組み
* API呼び出しが簡単になる

ServerSideRendering

* サーバでVueを実行してHTMLを生成して送る

【メリット】
1) 検索に引っかかりやすい
2) 読み込みが速くなる

【デメリット】
1) セキュリティに気を付ける必要がある

4)Babel (バベル)

* JavaScriptを新しい書き方から古い書き方に変換してくれるツール

https://qiita.com/mzmz__02/items/e6fbe5e30cc3fd13788f
https://qiita.com/Shagamii/items/a87181c22ea777ee2acc
https://qiita.com/senou/items/15c584b6fc90fe51702e

【2】ページの基本的な構成

<!-- 1)レイアウト(HTML) -->
<template>
  <!-- 注意:template直下は必ず1要素 -->
</template>

<!-- 2)処理(JavaScript / TypeScript) -->
<script>
</script>

<!-- 3)見た目(CSS/Sass) -->
<style>
</style>

【3】Vue のライフサイクル

Vueには、インスタンスの生成から破棄までにイベントがいくつか定義されている。

以下の4つの流れに、before<タイミング>/<タイミングの過去形>(4×2=8イベント)
になってて分かりやすい。
~~~~~~
1) インスタンス作成
2) マウント
3) DOM更新
4) インスタンス破棄
~~~~~~

詳細は、以下を参照。

https://b1tblog.com/2019/10/18/vue-lifecycle/

# 名前 説明
1 beforeCreate インスタンス作成前
2 created インスタンス作成後
3 beforeMount マウント前
4 mounted マウント後
5 beforeUpdate DOM更新前
6 update DOM更新後
7 beforeDestroy インスタンス破棄前
8 destroyed インスタンス破棄後

関連記事

Vue ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/04/30/000000
Vue ~ 基本編:ディレクティブ ~
https://dk521123.hatenablog.com/entry/2020/12/19/000000
Vue ~ 基本編:親・子コンポーネントのやり取り ~
https://dk521123.hatenablog.com/entry/2021/03/20/231104
Vue CLI ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/12/22/192553
Vuex ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/01/11/041127
Vueプラグイン + TypeScript ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/01/12/000804
Vue Mixins + TypeScript ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/01/13/110105
Vue Router ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/12/24/000000
Vue Router ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2021/01/20/165026
Vue Router ~ パラメータの受け渡し ~
https://dk521123.hatenablog.com/entry/2021/03/02/001653
Vuetify ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/12/26/000242
Vuetify ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2021/02/21/162236
Vuetify ~ コンポーネント編 ~
https://dk521123.hatenablog.com/entry/2021/02/14/180324
Vuetify ~ ユーザへの通知 ~
https://dk521123.hatenablog.com/entry/2021/03/01/225352
Vuetify ~ ローディング中の表示 ~
https://dk521123.hatenablog.com/entry/2021/03/03/111740
Vuetify + TypeScript で トップに戻る 丸ボタンを作る
https://dk521123.hatenablog.com/entry/2021/02/20/000000
Vuetify に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/02/08/000000
vue-i18n / 国際化 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/01/09/010806
vue-intersect / 遅延ロード
https://dk521123.hatenablog.com/entry/2021/01/02/000000
TypeScript + vue-intersect で遅延ロードを実装する
https://dk521123.hatenablog.com/entry/2021/02/03/233137
vue-clamp / テキスト行数指定表示
https://dk521123.hatenablog.com/entry/2021/01/18/232340
VS Code で Vue をデバッグするには
https://dk521123.hatenablog.com/entry/2021/01/21/235953
Vue + TypeScript で 簡単な ToDo リストを作成
https://dk521123.hatenablog.com/entry/2021/02/02/234331
Jestを使った Vue / TypeScript の単体試験 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/01/07/230317
JS単体試験ツール Jest ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/12/23/103209
JS単体試験ツール Jest ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2021/01/08/164356
JS単体試験ツール Jest ~ Mock編 ~
https://dk521123.hatenablog.com/entry/2021/01/26/215558
Vue + NightWatch で E2Eテスト をする
https://dk521123.hatenablog.com/entry/2021/02/06/220603