3分でわかるVue.jsのエンジニア的5大メリット「jQueryより簡単!」
- カテゴリ

Webサイトのフロントエンド開発では、JavaScriptフレームワークを扱わない場合、標準のJavaScriptやjQueryで制作を行います。
ユーザーアクションに連動した画面を更新するリッチな表現を行う処理は、Vue.jsを扱うことで、コード量を減らしたり、メンテナンスや管理が行いやすくなりますので、ご紹介します。
本記事は、HTML, CSSを学び、JavaScriptへの理解が少しある、マークアップエンジニアやデザイナー向けの記事になりますので、ご了承いただければ幸いです。
Vue.js について
Vue.jsは、ユーザーインターフェイスを構築するためのJavaScriptフレームワークです。開発で必要な機能がセットになったツールと思ってもらえればわかりやすいと思います。
様々な機能が用意されているため、操作を覚えると扱いやすく少ない記述で実装が可能です。
JavaScriptフレームワークは他にもありますが、これからJavaScriptフレームワークを扱ってみようという人には、Vue.jsは入りやすいフレームワークですね。
そちらも含めてVue.jsのメリットをご紹介します。
Vue.jsを使う5大メリット
1.学習コスト

フレームワークは、専用の記法を覚える必要があるのですが、Vue.jsはシンプルに設計されているため、他のフレームワークよりも覚えやすいです。HTMLに似た記述のため、わかりやすいです。
国内でVue.jsが多く使われていることから、ドキュメントも豊富のため学習しやすい環境が整っています。公式ドキュメント(https://jp.vuejs.org/)も丁寧にかかれていますので、まずはこちらを確認するのがいいかと思います。
またCDNでファイルを読み込むだけで使うことができるため、導入も簡単です。
2.拡張性の高さ

他フレームワークでは、中規模以上を想定したフレームワークなどもありますが、前述通りVue.jsはシンプルに設計されています。
そのため他のライブラリと組み合わせることのできる拡張性の高さから、大小様々な規模の開発に適用できます。
既存プロジェクトの一部にも適用できるため、途中から導入を行うことも可能です。
3.再利用できるコンポーネント

コンポーネントとは、HTMLの一部を切り取って、その内容を簡易な記述で呼び出せる部品のことです。
設計をしっかり行っておくと、再利用の際に開発の効率を上げたり、整合性を保つことができます。
4.データの同期

Vue.jsは、HTML要素に特別な属性を与えることで、Javascriptのデータと紐づけられ同期するようになります。
どちらか片方が更新されると、もう一方も同様に更新されるため、処理も簡潔になり、メンテナンスもしやすくなります。
またセレクタを使わないため、階層構造に気を付ける必要もなくなります。
5.SPAで開発しやすい

SPAはSingle Page Applicationの略で、単一のページを部分的に更新することで、ページ遷移を行わずにコンテンツを完結するWEBページのことです。
必要な差分の更新が行えて、更新速度も速いためUX向上に繋がり、UIもリッチにしやすくなります。
こういったSPAやSSR(サーバーサイドレンダリング)といった設計構造も拡張性のあるVue.jsでは制作しやすいという魅力があります。
Vue.jsとjQueryの違い
次に、全く同じ処理をjQueryとVue.jsで実装したらどのような違いがあるのかについて触れます。詳細な説明は省きますので、漠然とどのような違いがあるのかを知っていただければと思います。
動作内容の例は、「果物」「野菜」「肉」のラジオボタンを選択すると、セレクトメニューが、選択したカテゴリの一覧に変更するという処理です。

Vue.jsの実装例
<ul> <li> <input v-model="foods" type="radio" value="fruits" name="foods" id="fruits"> <labelfor="fruits">果物</label> </li> <li> <input v-model="foods" type="radio" value="vegetables" name="foods" id="vegetables"> <label for="vegetables">野菜</label> </li> <li> <input v-model="foods" type="radio" value="meats" name="foods" id="meats"> <label for="meats">肉</label> </li> </ul> <div> <select v-model="foodSelect" id="foodSelect"> <option value="">未選択</option> <option :value="food" v-for="food in foodList">{{food}}</option> </select> </div>
var vueIndex = new Vue({ el: "#wrapper", data: { foods: "", food: { 'fruits': ["りんご", "みかん", "ぶどう"], 'vegetables': ["キャベツ", "じゃがいも", "なす"], 'meats': ["鶏肉", "豚肉", "牛肉"] } }, computed: { foodList() { return this.food[this.foods]; } }, });
jQueryの実装例
<ul> <li> <input type="radio" value="fruits" name="foods" id="fruits"> <labelfor="fruits">果物</label> </li> <li> <input type="radio" value="vegetables" name="foods" id="vegetables"> <label for="vegetables">野菜</label> </li> <li> <input type="radio" value="meats" name="foods" id="meats"> <label for="meats">肉</label> </li> </ul> <div> <select id="foodSelect"> <option value="">未選択</option> </select> </div>
// 変数 const FOOD = { "fruits": ["りんご", "みかん", "ぶどう"], "vegetables": ["キャベツ", "じゃがいも", "なす"], "meats": ["鶏肉", "豚肉", "牛肉"] }; // カテゴリ選択 $('[name="foods"]').on('change', function() { let foodSelect = $('#foodSelect'); let val = $(this).val(); let html = ""; // 未選択以外を削除 foodSelect.find('option:not(:first)').remove(); // カテゴリ一覧を配置 $.each(FOOD[val], function(i, value){ html += `<option value="${value}">${value}</option>`; }); foodSelect.append(html); });
こちらは全く同じ動作をします。
いくつかのメリットを、ソースコードを見てお伝えさせていただきます。
- Vue.jsのほうが scriptのソースコードが少なく、視認性が高い
- scriptにあるHTML要素は、#wrapperのみとなっているため、階層構造が変わってもメンテナンスを行いやすい。
- scriptに、optionタグを生成して追加という記述がない。
Vue.js側の処理は、JavaScriptのデータを変更しているのですが、
データとHTMLの要素が紐づいているため、データ変更を行うと、表示側にも反映されます。
そのため「違うHTML要素を変更していた」などのケアレスミスもおきにくくなります。
まとめ
今回は、記述方法などには触れず、どのようなメリットがあるのかについて説明させていただきました。
私は実際のプロジェクトでは、同じ処理やHTML要素の再利用、HTML要素の変更、サーバーサイドと連携、アニメーション、フォームのバリデーションなど様々な用途で使用しています。
仕様の内容や開発期間など、状況によりますが、開発効率が上がることもあると思いますので、選択の一つとしていただければ幸いです。
安田
クーシーのWeb制作実績
-
難解サービスを再構築。
アイディア コーポレートサイトアイディア株式会社は、海事産業界向けプラットフォームの開発・運用を行うスタートアップ企業。収集した膨大な航海データを活かして航海支援スマホアプリ「Aisea(アイシア)」を小型船舶向けに提供。本プロジェクトでは、コーポレートサイトおよび「Aisea」サービスサイトのリニューアルを手がけました。
記事を読む
-
国内最大手「辻・本郷 税理士法人」
コーポレートサイトリニューアル辻・本郷 税理士法人は、北は北海道から南は沖縄まで国内60拠点以上を展開する国内最大手の税理士法人です。法人/個人、医療・公益法人・地方公共団体といった様々な顧客に向けて会計・税務顧問業務をはじめ、事業承継、組織再編、M&Aアドバイザリーなど幅広いサービスを提供しています。本件では、同法人のコーポレートサイトをリニューアルしました。
記事を読む
-
リビングから「注文住宅」相談。
NTTデータ・スマートソーシング
「HOME4U 家づくりのとびら」「HOME4U 家づくりのとびら」は株式会社NTTデータ・スマートソーシングが新事業として展開する、注文住宅のオンライン相談サービスです。PC/スマートフォンから注文住宅の疑問や不明点を専門アドバイザーに相談し、理想の住まいづくりを叶えることができます。
記事を読む