LoginSignup
0
0

More than 3 years have passed since last update.

Vue.jsは、インタラクティブな(双方向性の)UIを構築するためのJavaScriptのフレームワーク。
MVVMモデルの設計思考(ソフトウェアアーキテクチャ)を採用している。
コンポーネント指向のUIを設計することができる。

MVVMモデルとは?

MVVMモデルとは、プログラムの処理を以下の3つの役割に分類して開発するモデル。

  • Model
  • View
  • ViewModel

それぞれの頭文字を取ってMVVMモデルと呼ばれる。
基礎的なアーキテクチャであるMVC、及びViewとModelについてはこちらを参照

ITエンジニアホワイトボード.jpg

ViewModel

ViewModelは、ModelとViewを紐付ける接着剤の役割。

  1. Viewからリクエストを受ける
  2. ViewModelにリクエストが反映される(ViewModelのデータが書き換えられる)
  3. Modelに処理を命令
  4. 書き換えられた値をViewに反映

という処理を行う。値の変更が即時的にViewに反映されるのが特徴である。脊髄反射的なイメージ。

データバインディング

MVVMモデルを支えるのが、データバインディングである。

データバインディングとはデータをバインド(結びつける)ことで、ViewとViewModelを結びつけることである。
データバインディングは、ViewとView Modelどちらかの値が変化するたびにViewとView Model、両方の値が変更される。

これが「データが双方向性を持って反映されるUI」を構築するVue.jsの最大の特徴である。

コンポーネント指向とは?

mokei_puramo_boy.png

コンポーネント(Component)とは、部品という意味である。

コンポーネント指向とは、様々な機能をそれぞれ1つのコンポーネントとして切り出し、複数のコンポーネントを組み合わせることで、1つのサービス、アプリケーション、WEBサイトなどを作り上げる考え方である。

サービスをガンプラとすれば、コンポーネントは1つ1つのパーツである。ガンプラを組み立てるようにサービスを作り上げるのがコンポーネント指向である。

メリット

  • 設計・開発・テストなどがコンポーネント単位でできる
  • パーツを共通化することで、複数ページに渡る同じような実装を1つのコンポーネントで対応することができる

デメリット

  • 表示されるページ数に対して必要なファイル数が多くなる
  • コンポーネントが共通化されている場合、1つのコンポーネントを変更すると別のページで不具合が発生する可能性がある

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0