Vue.jsのコンポーネントには、それぞれが持つライフサイクルと呼ばれるものがあります。これは、コンポーネントが生成されるときから破棄されるまでの一連のプロセスを指しています。今回はそのライフサイクルと、それぞれのフェーズで何が起こるかを詳しく解説します。
目次
Vue.jsのコンポーネントとは
Vue.jsのコンポーネントとは、再利用可能なVueインスタンスであり、オプションオブジェクトとともに新しく生成されます。これらのコンポーネントは、Vueのコンストラクタを拡張したものと考えることができます。
Vue.jsのコンポーネントライフサイクルとは
Vue.jsのコポーネントライフサイクルとは、コンポーネントが作成され、更新され、破棄されるまでの連のプロセスを指します。このライフサイクルは、特定の「フェーズ」または「ステージ」に分けられます。それぞれのフェーズでは、特定のライフサイクルフックが呼び出されます。
コンポーネントライフイクルの各フェーズ
Vue.jsのコンポーネントライフサイクルは、以下のフェーズから成り立っています。
beforeCreate
このフェーズは、Vueインスタンスが生成され、データの観測やイベントの設定が行われる前に実行されます。
new Vue({ beforeCreate: function () { console.log('beforeCreateフェーズ'); }, });
created
このフェーズは、Vueインスタンスが生成され、データの観測やイベントの設定が行われた後に実行されます。この時点では、テンプレートとDOMがまだマウントされていません。
new Vue({ created: function () { console.log('createdフェーズ'); }, });
beforeMount
このフェーズは、テンプレートがコンパイルされた後、DOMにマウントされる前に実行されます。
new Vue({ beforeMount: function () { console.log('beforeMountフェーズ'); }, });
mounted
このフェーズは、VueインスタンスがDOMにマウントされた後に実行されます。この時点で、すべてのディレクティブがバインドされ、テンプレートがレンダリングされています。
new Vue({ mounted: function () { console.log('mountedフェーズ'); }, });
beforeUpdate
このフェーズは、データが変更され、DOMの再レンダリングと再描画が行われる前に実行されます。
new Vue({ beforeUpdate: function () { console.log('beforeUpdateフェーズ'); }, });
updated
このフェーズは、データが変更され、DOMの再レンダリングと再描画が行われた後に実行されます。
new Vue({ updated: function () { console.log('updatedフェーズ'); }, });
beforeDestroy
このフェーズは、Vueインスタンスが破棄される前に実行されます。
new Vue({ beforeDestroy: function () { console.log('beforeDestroyフェーズ'); }, });
destroyed
このフェーズは、Vueインスタンスが破棄された後に実行されます。
new Vue({ destroyed: function () { console.log('destroyedフェーズ'); }, });
まとめ
Vue.jsのコンポーネントライフサイクルは、コンポーネントの生成から破棄までのプロセスを理解するために重要です。それぞれのフェーズで何が起こるのかを理解することで、より効率的なコードを書くことができます。