Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

Vue.jsとは?特徴やできること、他のフレームワークとの比較を徹底解説


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210717144545p:plain

おはようございます。Shotaです。

本記事を読んでいるあなたは、


❓「Vue.jsとは?

❓「Vue.jsと他のフレームワークは何が違うの?

❓「Vue.jsのメリット・デメリットは?


このように考えているかと思います。

JavaScriptを使って効率的にWeb開発を行うのであれば、JavaScriptフレームワークの導入は欠かせません。事実、多くの企業でJavaScriptフレームワークが導入されています。

フロントエンド開発を効率化するJavaScriptフレームワークが多くなっていますが、その中でもまずしっかりと習得しておきたいのがVue.jsです。Vue.jsは最近のフレームワークに共通するコンポーネント指向の考え方が身につき、JavaScriptを習得してきたプログラマーであれば学習にそれほど時間がかかりません。

そこで、今日の記事では人気急上昇中のJavaScriptフレームワーク「Vue.js」について徹底解説します。

ちなみに、今日の記事は以前に投稿したこちらの記事のアップデート版になります。よければ参考にしてみてください。

shotanukumizu-1000.hatenablog.com

それでは早速、本題に入りましょう!



Vue.jsとは?

f:id:ShotaNukumizu_1000:20210924072234p:plain

Vue.jsとは、フロントエンド開発において特にUI(ユーザインターフェース)を作成するために用いられるJavaScriptフレームワークです。

フレームワークとは開発をするときに必要な機能などをまとめて提供してくれるソフトウェアのことで、これを使うと開発の効率を上げることができます。そのため、頻繁に使う機能を簡単なコードで再現できます。

最近のJavaScriptフレームワークの特徴であるコンポーネント指向で作られたフレームワークで、コンポーネント(レイアウト上の各パーツ)も充実していてフロントエンド部分を簡単に開発できます。

他のフレームワークでは設計思想をフレームワークに反映させるために独自の企画やルールも多く導入されていますが、Vue.jsではこのようなものが少なく、学習コストが低いのが特徴です。

また、Vue.jsは個人開発でも使いやすいです。Vue.jsは、シングルページアプリケーション(SPA)のようにページの切り替えを行うことなく多くのデータを表示するようなページで特に有効で、様々なWebアプリで利用されるようになります。


Vue.jsでできること6つ

f:id:ShotaNukumizu_1000:20210924083202p:plain

ここからは、Vue.jsでできることを6つ紹介します。


双方向データバインディング

Vue.jsはデータバインドに特化しています。

双方向データバインディングでは、データの変更があればUIの表示を更新し、UIの変更があればデータの更新を行うように自動化されます。一例を挙げると、テキストボックスに入力されたデータに応じて即時に出力されている文字が変わるという処理が可能です。


ディレクティブ

Vue.jsの特徴的な機能で、HTMLに独自の属性を付与してDOM(Document Object Model)操作を行う機能です。

DOMとは、Webページを表すHTMLのように文章の構造をメモリー内に表現することで、Webページとスクリプトプログラミング言語を接続するものです。これにより、文章構造やスタイルやコンテンツを変更できます。


クラスが使える

Vue.jsはJavaScriptでは使えなかったクラスが使えます。連想配列の形でクラスを作成し、様々なデータの入れ物として利用できるので開発の幅が広がります。


テストのためのツールが使える

Vue CLIには、JestやMochaを使って簡単に単体テストを行うためのプラグインオプションがあります。公式のVue Testユーティリティもあり、作成したアプリがしっかり動作するかどうかを簡単に検証できます。


TypeScriptも使える

Vue.jsは基本的にJavaScriptのためのフレームワークですが、プラグインを使うことでTypeScriptにも対応します。

データに方を指定することができることや、多くのエディタでプラグインによって保管機能が使えるようになって開発速度が高まります。


軽量かつ最小構成

Vue.jsはその容量が非常に小さいので、サーバ内に設置せず外部のサーバから読み込む形で十分に機能し、動作も高速です。

また、他のフレームワークのように雑多な機能がないので、最小構成でのアプリ開発を行うことができます。これはマルチデバイスを意識し、ページの表示速度が意識されるようになったSEOにおおいて非常に大きなアドバンテージです。


Vue.jsの特徴

f:id:ShotaNukumizu_1000:20210924083221p:plain

それでは、Vue.jsの特徴についてメリット・デメリットを中心に解説します。


メリット

f:id:ShotaNukumizu_1000:20210921075852p:plain


メリット① 学習コストが低い

Vue.jsの大きなメリットの一つが、学習コストの低さです。

JavaScriptフレームワークやライブラリは多数あるので、できたら一つ一つにたくさんの時間を咲きたくありません。Vue.jsの学習コストが低いということは、その文だけJavaScriptそのものや、他のフレームワークを学習する時間が取れることに繋がります。

それだけではありません。Vue.jsの公式サイトが日本語に翻訳されており、人気のフレームワークなので日本語情報が多いことも学習コストが下がる嬉しい要因です。


メリット② サーバとの通信量を節約できる

前で述べましたが、Vue.jsはSPA(シングルページアプリケーション)開発に使われることが多いです。

SPAは、ブラウザ側でできる処理をJavaScriptで終わらせることで、サーバとの通信量を最低限に抑えられるアプリです。最近人気が高まっていて、特にユーザの滞在時間が長いWebサービスで採用されています。


メリット③ ユーザの入力値を即時に反映できる

Vue.jsはMVVMモデルを採用しており、これによってユーザがWeb上で入力した値に応じて表示をすぐに反映させられます。

MVVMモデルとは「View」「Model」「ViewModel」に分けて開発を行う方法です。ユーザが入力した値がViewModelを通してすぐに反映されるので、ユーザが情報を入力するのとほぼ同時に画面上の情報が変化していきます。

この設計を適切に運用すると、ユーザにとって非常に使い勝手の良いページに仕上がりますので、結果的に満足度を挙げられます。


メリット④ 作業を簡単にできる

Vue.jsはコンポーネント指向でアプリケーション開発を行うフレームワークです。コンポーネントとはGUI(グラフィカル・ユーザ・インターフェース)のパーツをモジュール化したもののことです。

コンポーネント指向のVue.jsで開発をすることで、ボタンや入力欄など、複数の画面で使用するものを「コンポーネント」という単位で区切ることができます。

これによって再利用性が高くなり、デザインと技術の共同作業の簡易化、また開発スピードを向上させられます。


メリット⑤ 開発スピードを速められる

Vue.jsにはディレクティブというView要素に付加できる独自属性があります。

ディレクティブを利用することでDOM(Document Object Model)を操作でき、HTML要素の表示・非表示などを柔軟に変化させられます。


デメリット

f:id:ShotaNukumizu_1000:20210924065330p:plain


デメリット① チーム開発に向いていない

Vue.jsでは基本的にチームで連携しての開発をサポートするための機能が備わっているわけではありません。

コードの記述方法や、各コンポーネントやファイルのバージョン管理などは各自の責任になりますので、GitHubを利用しながらチームで管理方法を予め決めておく必要があります。


デメリット② URLのルーティングができない

Vue.jsでは、URLのルーティング(同じページ上での擬似的なページ遷移)を単体で行うことができません。

そのため、公式でも他のライブラリを利用することが紹介されています。ルーティングを必要とする場合には管理が複雑になることもありますし、単一のページ以外が表示されない扱いになり、アクセス解析SEO上の不都合が生じることになります。


デメリット③ 古いブラウザに対応していない

最近は古いブラウザがほとんどなくなっていますが、Vue.jsを利用して作ったサイトは古いブラウザでは見られません。

実質上の問題は少ないですが、一応覚えておきましょう。


Vue.jsと他のフレームワーク・ライブラリの比較

f:id:ShotaNukumizu_1000:20210924083334p:plain

本章では、Vue.jsと他のフレームワーク・ライブラリを比較していきます。


AngularJS

f:id:ShotaNukumizu_1000:20210924083407p:plain

実はVue.jsはAngularに影響を受けて開発されており、構文が多少似ている部分があります。言い換えれば、Angularをより使いやすく改良したのがVue.jsであるということもできます。

Angularも人気のフレームワークですが、Vue.jsと比較すると学習コストが高いです。Angularを使いこなせば生産性の高い処理ができますが、それはVue.jsでもできます。

学習コストの面で考えるとVue.jsから勉強したほうがいいと思います。


React

f:id:ShotaNukumizu_1000:20210924083429p:plain

Reactはここで紹介するフレームワーク、ライブラリの中で最もVue.jsに似ています。仮想DOMを使っている点、コンポーネントの機能を有している点など共通点が多いです。Reactも軽量で高速なパフォーマンスができるので、Vue.jsと比べても甲乙つけがたいです。

Vue.jsのほうがシンプルなコードで取り組みやすいので、学習コストの面ではVue.jsのほうが分があるでしょう。また、Reactは日本語の情報が少なく、Vue.jsは日本語の情報が多いので、情報面でもVue.jsの方から学習しやすいです。


jQuery

f:id:ShotaNukumizu_1000:20210924083516p:plain

jQueryJavaScriptの定番ライブラリなので使っている人は多いですが、最近はVue.jsに乗り換えている人が増えています。ネット上では「jQueryとVueは比較対象じゃない」という声も聞きますが、本記事では比較対象として検討します。

そもそもVue.jsはフレームワークで、jQueryはライブラリです。ライブラリなので、ただ単にJavaScriptの記述を簡素化できるという役割しかありません。

言い換えれば、jQueryを使う上でデータをどのように表示したり操作したりするのか定義されておらず、開発者それぞれが自由気ままに実装してしまい、可読性も拡張性も安全性もないUIができあがりやすいです。

Vue.jsのようなフレームワークのほうが、出来上がるUIの完成度を大きく高めることが多いです。


Laravel

f:id:ShotaNukumizu_1000:20210924083540p:plain

Laravelは近年人気が急上昇しているPHPフレームワークです。

ver5.3より、Vue.jsが標準で搭載されるようになりました。そのため、LaravelをインストールすればWebAPIをLaravelで作り、SPA開発をVue.jsで行うことが可能になります。


まとめ

今回の記事では、Vue.jsについて徹底解説しました。

Vue.jsは人気が急上昇しているJavaScriptフレームワークです。

本記事を参考に、Vue.jsについて興味関心を持ったり、実際に学習しようと思ったりすれば幸いです。

今回の記事はこれで終了です。

【参考サイト】

udemy.benesse.co.jp

media-architect.co.jp

www.sejuku.net

developer.mozilla.org