COOSY BLOG
  • HOMEホーム

  • SERVICEサービス

    • サービスTOP
    • Web制作
    • ブランディング
    • デジタルマーケティング
    • 戦略企画
    • DX推進・システム開発
    • グローバル展開
  • WORK制作実績

    • 制作実績TOP
    • コーポレートサイト
    • 採用サイト
    • ECサイト
    • プロモーション
    • サービスサイト・SaaS
    • システム開発
  • ABOUTクーシーについて

    • クーシーについて
    • 会社情報
    • 私たちが大切にしていくこと
    • お知らせ
    • クーシーラボ岩手
    • ロンドン支社
    • ミャンマー支店
  • BLOGブログ

  • RECRUITリクルート

  • Contactお問い合わせ

BLOG MENU

  • BLOGトップ
  • 目的別

    • 目的別TOP
    • コーポレートサイト
    • ECサイト
    • オウンドメディア
    • 採用サイト
    • プロモーション
    • Webサービス
    • LP
    • ブランディング・CI
  • Web制作ハウツー

    • Web制作ハウツーTOP
    • UIUX・サイト設計
    • WebデザインTips
    • PM/ディレクション
    • フロントエンド(HTML/CSS)
    • 撮影・動画編集
    • ライティング
    • CMS
    • Web制作ツール
    • イラスト
  • システム開発

    • システム開発TOP
    • プログラミング
    • EC構築
    • CMS開発・構築
    • サーバ構築
    • データベース構築
    • セキュリティー
  • Webサイト運用のコツ

    • Webサイト運用のコツTOP
    • サイト運用・管理・保守
    • コンテンツ運用
    • CRM(顧客管理)
  • Webマーケティング

    • WebマーケティングTOP
    • SEO対策・トレンド
    • コンテンツ制作・SEOライティング
    • アクセス解析
    • Web広告
    • Web集客ハウツー
  • 特集

    • 特集TOP
    • Web最新トレンド
    • カルチャー
    • ガジェット

Share on

  • Xでシェアする
  • Facebookでシェアする
  • このエントリーをはてなブックマークに追加

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

  • システム開発
  • プログラミング
3分でわかるVue.jsのエンジニア的5大メリット「jQueryより簡単!」

Webサイトのフロントエンド開発では、JavaScriptフレームワークを扱わない場合、標準のJavaScriptやjQueryで制作を行います。

ユーザーアクションに連動した画面を更新するリッチな表現を行う処理は、Vue.jsを扱うことで、コード量を減らしたり、メンテナンスや管理が行いやすくなりますので、ご紹介します。

本記事は、HTML, CSSを学び、JavaScriptへの理解が少しある、マークアップエンジニアやデザイナー向けの記事になりますので、ご了承いただければ幸いです。

Vue.js について

Vue.jsは、ユーザーインターフェイスを構築するためのJavaScriptフレームワークです。開発で必要な機能がセットになったツールと思ってもらえればわかりやすいと思います。
様々な機能が用意されているため、操作を覚えると扱いやすく少ない記述で実装が可能です。

JavaScriptフレームワークは他にもありますが、これからJavaScriptフレームワークを扱ってみようという人には、入りやすいフレームワークですね。
そちらも含めてメリットをご紹介します。

Vue.jsを使う5大メリット

1.学習コスト

利用者が多いため情報が豊富

フレームワークは、専用の記法を覚える必要があるのですが、Vue.jsはシンプルに設計されているため、他のフレームワークよりも覚えやすいです。HTMLに似た記述のため、わかりやすいです。

国内で多く使われていることから、ドキュメントも豊富のため学習しやすい環境が整っています。公式ドキュメント(https://jp.vuejs.org/)も丁寧にかかれていますので、まずはこちらを確認するのがいいかと思います。

またCDNでファイルを読み込むだけで使うことができるため、導入も簡単です。

2.拡張性の高さ

シンプルなフレームワークだからできること

他フレームワークでは、中規模以上を想定したフレームワークなどもありますが、前述通りVue.jsはシンプルに設計されています。
そのため他のライブラリと組み合わせることのできる拡張性の高さから、大小様々な規模の開発に適用できます。

既存プロジェクトの一部にも適用できるため、途中から導入を行うことも可能です。

3.再利用できるコンポーネント

再利用できるコンポーネント

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

4.データの同期

Vue.js側の変更だけで表示が変わる

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

5.SPAで開発しやすい

読み込むデータが少なく、表示スピードが向上する

SPAはSingle Page Applicationの略で、単一のページを部分的に更新することで、ページ遷移を行わずにコンテンツを完結するWEBページのことです。

必要な差分の更新が行えて、更新速度も速いためUX向上に繋がり、UIもリッチにしやすくなります。
こういったSPAやSSR(サーバーサイドレンダリング)といった設計構造も拡張性のある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);
});

こちらは全く同じ動作をします。
いくつかのメリットを、ソースコードを見てお伝えさせていただきます。

1.Vue.jsのほうが scriptのソースコードが少なく、視認性が高い

2.scriptにあるHTML要素は、#wrapperのみとなっているため、階層構造が変わってもメンテナンスを行いやすい。

3.scriptに、optionタグを生成して追加という記述がない。

Vue.js側の処理は、JavaScriptのデータを変更しているのですが、
データとHTMLの要素が紐づいているため、データ変更を行うと、表示側にも反映されます。
そのため「違うHTML要素を変更していた」などのケアレスミスもおきにくくなります。

Vue.jsで作る記事一覧テンプレート

Vue.jsで作れるものの一例として、ブログサイトなどのよくある「記事一覧」の作り方をご紹介します。「条件分岐(v-if)」と「繰り返し(v-for)」という2つの要素を使うことで簡単に実装できます。

サンプルコードもついていますから、ご自分でカスタマイズして使ってみてください。以下の記事からどうぞ。


【コード付】v-ifとv-forの使い方!Vue.jsで一覧ページのテンプレート作成

まとめ

今回は、記述方法などには触れず、どのようなメリットがあるのかについて説明させていただきました。

私は実際のプロジェクトでは、同じ処理やHTML要素の再利用、HTML要素の変更、サーバーサイドと連携、アニメーション、フォームのバリデーションなど様々な用途で使用しています。仕様の内容や開発期間など、状況によりますが、開発効率が上がることもあると思いますので、選択の一つとしていただければ幸いです。

Vue.jsを使ってみたいと思った方は、以下の記事をどうぞ。導入方法と基本的な使い方について初心者向けに解説しています。


Vue.js入門!インストールから教える基本的な使い方!【初心者向け】

クーシーブログ編集部

この記事を書いた人

クーシーブログ編集部

1999年に設立したweb制作会社。「ラクスル」「SUUMO」「スタディサプリ」など様々なサービスの立ち上げを支援。10,000ページ以上の大規模サイトの制作・運用や、年間約600件以上のプロジェクトに従事。クーシーブログ編集部では、数々のプロジェクトを成功に導いたメンバーが、Web制作・Webサービスに関するノウハウやハウツーを発信中。

お問い合わせはこちらから

Web制作デザイン、丸ごとお任せ

お問い合わせする

2021/01/14

安田

Share on

  • Xでシェアする
  • Facebookでシェアする
  • このエントリーをはてなブックマークに追加
お問い合わせはこちら

プログラミングの関連記事はこちら

  • Laravel 11から12への変更点とアップデート方法【注目の新機能まとめ!】

    Web制作会社クーシーが、Laravel 12の変更点とアップデート方法をわかりやすく解説! パフォーマンス向上やセキュリティ強化、開発体験を向上させる新機能もご紹介します。

    • プログラミング
  • Astro.jsとは? 高速・軽量の新世代フレームワークをWeb制作会社が詳しく解説

    Webサイトの表示速度にお悩みですか? 高速・軽量な次世代フレームワーク「Astro.js」が解決の鍵になるかもしれません。特徴やメリットなど、Web制作会社のクーシーがわかりやすく解説します。

    • プログラミング
  • 【はじめてのPHP】初心者向けに特徴と使い方をやさしく解説

    PHPは、Web開発で重要な役割を果たすプログラミング言語です。身近なところではWordPressに使われています。

    • プログラミング
  • 【DockerでReactの環境構築】エンジニア1年生と学ぶコンテナ構築までの手順

    Dockerでの環境構築は慣れていない人にはやや複雑です。本記事では画像つきで、初心者でもできるようにわかりやすく解説します。

    • プログラミング
  • 【図解】APIとは?メリットや連携事例をわかりやすく解説

    APIはアプリやサービス同士をプログラムでつなぐ仕組みのことです。この記事ではメリットや連携事例をわかりやすく説明しています。

    • プログラミング
  • 【コード付】v-ifとv-forの使い方!Vue.jsで一覧ページのテンプレート作成

    Vue.jsに興味がある、使ってみたいけど実装の具体的なイメージがわからない人は多いと思います。本記事ではWebサイトでよくある「記事一覧」を例に、Vue.jsを使って実装する方法を紹介します。

    • プログラミング
  • 複雑なAjaxで悩みがち!処理をうまく解決する3つの方法

    今回はAjaxのご紹介と実装方法を解説します。ページ全体の読み込みをしないで、非同期通信(Ajax)でページ内のコンテンツを一部だけ更新・生成することができます。

    • プログラミング
  • Youtube動画を埋め込む方法!知っておきたいカスタマイズ16選

    Webサイト制作で、ビジュアルやビデオなどの掲載に、YouTubeを使うことがあります。単純に動画を流すだけではなく、カスタマイズを行って、より近いイメージに変更できればと思うケースがありますよね。

    • 撮影・動画編集
    • プログラミング

COOSYの
制作実績

UIUXと美しさを両立させた、クーシーが誇る成功事例一覧。
課題解決のアイデア満載です。

制作実績を見る

Web制作の課題はクーシーが解決します

  • DX推進・システム開発

  • Web制作

    コーポレートサイト、採用サイト、ECサイトまで。最新AI技術を掛け合わせ、各サイトの特性に合わせたUIUX設計を実現します。

  • UIUX設計

    人間中心設計で価値ある体験を創造。SEO・AIOにも貢献し、LTV向上につながる直感的な画面デザインを実現します。

CATEGORY LIST

  • すべての記事一覧

  • 目的別

    • 目的別TOP
    • コーポレートサイト
    • ECサイト
    • オウンドメディア
    • 採用サイト
    • プロモーション
    • Webサービス
    • LP
    • ブランディング・CI
  • Web制作ハウツー

    • Web制作ハウツーTOP
    • UIUX・サイト設計
    • WebデザインTips
    • PM/ディレクション
    • フロントエンド(HTML/CSS)
    • 撮影・動画編集
    • ライティング
    • CMS
    • Web制作ツール
    • イラスト
  • システム開発

    • システム開発TOP
    • プログラミング
    • EC構築
    • CMS開発・構築
    • サーバ構築
    • データベース構築
    • セキュリティー
  • Webサイト運用のコツ

    • Webサイト運用のコツTOP
    • サイト運用・管理・保守
    • コンテンツ運用
    • CRM(顧客管理)
  • Webマーケティング

    • WebマーケティングTOP
    • SEO対策・トレンド
    • コンテンツ制作・SEOライティング
    • アクセス解析
    • Web広告
    • Web集客ハウツー
  • 特集

    • 特集TOP
    • Web最新トレンド
    • カルチャー
    • ガジェット
  • WORKS

    Webサイト・アプリなどの
    様々な実例・制作実績のご紹介

    WORKS
  • CONTACT CONTACT

    Webサイトのご相談、お見積もりはこちらから

    Webサイトのご相談、お見積もりなど
    お気軽にお問い合わせください

ホーム

  • TOP
  • COOSY BLOG
  • 3分でわかるVue.jsのエンジニア的5大メリット「jQueryより簡単!」
ページトップへ
  • TOP
  • SERVICE

    • ブランディング
    • デジタルマーケティング
    • 戦略企画
    • DX推進・システム開発
    • グローバル展開
    • Web制作
  • WORKS

    • コーポレートサイト
    • 採用サイト
    • ECサイト
    • プロモーションサイト
    • サービスサイト
    • システム開発
  • ABOUT

    • 会社情報
    • 私たちが大切にしていくこと
    • お知らせ
    • クーシーラボ 岩手
    • ロンドン支社
    • ミャンマー支店
  • RECRUIT

    • ディレクション部
    • デザイン部
    • システム開発部
    • アカウント・プランニング部
    • Webマーケティング事業部
    • 人事・総務部
    • オフショア
    • グローバル事業部
  • BLOG

    • 目的別
    • Web制作ハウツー
    • システム開発
    • Webサイト運用のコツ
    • Webマーケティング
    • 特集

COOSY SNS

  • facebook
  • X
  • お問い合わせ
  • Privacy policy
  • Site Policy
  • Security Policy
© COOSY All Rights Reserved.