SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

翔泳社では、「独習」「徹底入門」「スラスラわかる」「絵で見てわかる」「一年生」などの人気シリーズをはじめ、言語や開発手法、最新技術を解説した書籍を多数手がけています。プロジェクトマネジメントやチームビルティングといった管理職向けの書籍も豊富です。

ITエンジニアとしてのスキルアップ・リスキリングに、ぜひお役立てください。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
LINEフロントエンドレンジャーのWeb開発術

お手軽データバインディングライブラリ「Vue.js」を使いこなそう(基礎編)

LINEフロントエンドレンジャーのWeb開発術 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載はLINEのフロントエンドエンジニアのチームがWeb開発において注目・活用している技術を紹介します。連載第1弾として、JavaScriptのデータバインディング(MVVM)ライブラリである「Vue.js」について紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 Vue.jsは、シンプル・軽量・高速という特徴を持つデータバインディングライブラリとして最近注目を集めています。LINE社でもアプリ内WebViewの実装技術の選択肢の一つとしてVue.jsを採用しています。2014年11月27日にリリースされたLINEスケジュールは、Vue.jsを使って実装しているSPA(Single Page Application)の代表例です。

 本稿は日本語記事がまだ少ないVue.jsの基本機能の紹介を目的とした「基礎編」として、公式ドキュメントの内容を元に解説します(執筆時点のバージョンであるv0.11の内容です)。

Vue.jsとは

 Vue.jsは、双方向バインディングによるModelとViewをつなぐ仕組み「ViewModelレイヤー(MVVMパターン)」を提供するJavaScriptのライブラリです。

 Vue.jsの基本概念は以下のようになっています。

  • 極力シンプルにしたAPI設計
  • リアクティブなデータバインディング
  • コンポーネント化容易な仕組み
  • 他ライブラリへの依存がなく柔軟かつ軽量(約52KB)

 他のライブラリと比べてVue.jsは後発で登場し、AngularJS、KnockoutJS、Ractive.js、Rivets.jsの良さを踏まえた上で、機能性とシンプルさを追求して作られています。そのシンプルな性質から学習コストが少ないのも特徴です。

 Vue.jsはコンポーネント化にも力を入れています。例えば、Web Componentsのコンセプトに沿った仕組みの提供や、WebpackやBrowserifyなどのモジュールのビルドシステムへの対応も積極的に行っています。

 AngularJSを代表とするデータバインディングを提供する他のJavaScriptのフレームワークと比較すると、Vue.jsは機能やサポート対象の多さという観点では劣る面もあるかもしれません。しかし、Vue.jsの設計は、ある程度シンプルなアプリケーションや迅速性を求められるプロトタイプ開発などに適しているため、そのような局面では開発の効率性を特に高めることができます。

Vue.jsのパフォーマンスについて

 Vue.jsはレガシーブラウザのサポートを落とし(IE8以下はサポート外)、バインディングにECMAScript 5のObject.definePropertyで提供されるgetter/setterを利用して、イベントベースの監視の仕組みを実現しています。そのため、例えばAngularJSが持つ変更検知のためのdirty checkingなど、コストのかかる機構を必要とせず高速と言われています。他のライブラリとの機能比較に関してはVue.jsの作者であるEvan You氏がFAQページで解説しています。

 

 また、Vue.jsは他のMV*系のライブラリと比較して最もパフォーマンスに優れているというベンチマークテストの結果ページが公式ページに公開されていました。しかし、他ライブラリの作者から計測基準がフェアではないなどいくつかの意見があり、現在はそのパフォーマンスに関するページは削除されています。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ViewModelの定義

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
LINEフロントエンドレンジャーのWeb開発術連載記事一覧

もっと読む

この記事の著者

手島 拓也(LINE株式会社)(テジマ タクヤ)

日本IBM研究所にて検索・テキスト解析ソフトウェア製品の開発に従事した後、現在はLINEにてWebフロントエンド開発を担当。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8363 2015/01/14 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    paiza、2027年卒ITエンジニア志望学生のインターンシップ人気企業ランキングを発表 NEW
  2. 2
    データサイエンス基礎を高校数学から復習しよう! D3.jsでデータを表現する
  3. 3
    ストックマーク、1000億パラメータの日本語特化型LLM「Stockmark-2-100B-Instruct-beta」を公開 NEW
  4. 4
    macOS上のアプリケーションからChatGPTが呼び出せるように。各種IDEやターミナル、メモなどが対応
  5. 5
    世界6000万ユーザーの「TimeTree」、サービスの未来を見据えて挑んだデータベース移行の舞台裏
  1. 6
    さくらインターネット、パブリッククラウド「さくらのクラウド」に13の新機能を追加 NEW
  2. 7
    エンジニアが受けた「理不尽なクレーム」とは? バルテスが「理不尽なクレーム事例&対処法」を調査
  3. 8
    SaaS開発/運用支援プラットフォーム「SaaSus Platform」、わずか60分でAPI実装ができる新機能を追加 NEW
  4. 9
    企業の45%が生成AIを利用し、日常業務では80%超がその成果を実感していることが明らかに NEW
  5. 10
    「Tailwind CSS」の公式UIライブラリ「Tailwind UI」、サービス拡大を視野に「Tailwind Plus」へ名称変更

アクセスランキング

  1. 1
    paiza、2027年卒ITエンジニア志望学生のインターンシップ人気企業ランキングを発表 NEW
  2. 2
    データサイエンス基礎を高校数学から復習しよう! D3.jsでデータを表現する
  3. 3
    ストックマーク、1000億パラメータの日本語特化型LLM「Stockmark-2-100B-Instruct-beta」を公開 NEW
  4. 4
    macOS上のアプリケーションからChatGPTが呼び出せるように。各種IDEやターミナル、メモなどが対応
  5. 5
    世界6000万ユーザーの「TimeTree」、サービスの未来を見据えて挑んだデータベース移行の舞台裏
  6. 6
    さくらインターネット、パブリッククラウド「さくらのクラウド」に13の新機能を追加 NEW
  7. 7
    エンジニアが受けた「理不尽なクレーム」とは? バルテスが「理不尽なクレーム事例&対処法」を調査
  8. 8
    SaaS開発/運用支援プラットフォーム「SaaSus Platform」、わずか60分でAPI実装ができる新機能を追加 NEW
  9. 9
    企業の45%が生成AIを利用し、日常業務では80%超がその成果を実感していることが明らかに NEW
  10. 10
    「Tailwind CSS」の公式UIライブラリ「Tailwind UI」、サービス拡大を視野に「Tailwind Plus」へ名称変更
  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説
  2. 2
    マイクロソフト、VSCodeの新機能「Copilot Next Edit Suggestions」のプレビュー版公開
  3. 3
    世界6000万ユーザーの「TimeTree」、サービスの未来を見据えて挑んだデータベース移行の舞台裏
  4. 4
    C# 13の新機能を理解する――暗黙的なインデックスアクセスとallows ref struct
  5. 5
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  6. 6
    データサイエンス基礎を高校数学から復習しよう! D3.jsでデータを表現する
  7. 7
    macOS上のアプリケーションからChatGPTが呼び出せるように。各種IDEやターミナル、メモなどが対応
  8. 8
    ITエンジニア本大賞2025のプレゼン大会をレポート、最終決戦に臨んだ本に込められた想いとは
  9. 9
    Linuxディストリビューション「EndeavourOS Mercury」が一般提供開始
  10. 10
    ITエンジニア本大賞2025、技術書部門とビジネス書部門の大賞が決定!

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    paiza、2027年卒ITエンジニア志望学生のインターンシップ人気企業ランキングを発表 NEW
  2. 2
    データサイエンス基礎を高校数学から復習しよう! D3.jsでデータを表現する
  3. 3
    ストックマーク、1000億パラメータの日本語特化型LLM「Stockmark-2-100B-Instruct-beta」を公開 NEW
  4. 4
    macOS上のアプリケーションからChatGPTが呼び出せるように。各種IDEやターミナル、メモなどが対応
  5. 5
    世界6000万ユーザーの「TimeTree」、サービスの未来を見据えて挑んだデータベース移行の舞台裏
  1. 6
    さくらインターネット、パブリッククラウド「さくらのクラウド」に13の新機能を追加 NEW
  2. 7
    エンジニアが受けた「理不尽なクレーム」とは? バルテスが「理不尽なクレーム事例&対処法」を調査
  3. 8
    SaaS開発/運用支援プラットフォーム「SaaSus Platform」、わずか60分でAPI実装ができる新機能を追加 NEW
  4. 9
    企業の45%が生成AIを利用し、日常業務では80%超がその成果を実感していることが明らかに NEW
  5. 10
    「Tailwind CSS」の公式UIライブラリ「Tailwind UI」、サービス拡大を視野に「Tailwind Plus」へ名称変更

アクセスランキング

  1. 1
    paiza、2027年卒ITエンジニア志望学生のインターンシップ人気企業ランキングを発表 NEW
  2. 2
    データサイエンス基礎を高校数学から復習しよう! D3.jsでデータを表現する
  3. 3
    ストックマーク、1000億パラメータの日本語特化型LLM「Stockmark-2-100B-Instruct-beta」を公開 NEW
  4. 4
    macOS上のアプリケーションからChatGPTが呼び出せるように。各種IDEやターミナル、メモなどが対応
  5. 5
    世界6000万ユーザーの「TimeTree」、サービスの未来を見据えて挑んだデータベース移行の舞台裏
  6. 6
    さくらインターネット、パブリッククラウド「さくらのクラウド」に13の新機能を追加 NEW
  7. 7
    エンジニアが受けた「理不尽なクレーム」とは? バルテスが「理不尽なクレーム事例&対処法」を調査
  8. 8
    SaaS開発/運用支援プラットフォーム「SaaSus Platform」、わずか60分でAPI実装ができる新機能を追加 NEW
  9. 9
    企業の45%が生成AIを利用し、日常業務では80%超がその成果を実感していることが明らかに NEW
  10. 10
    「Tailwind CSS」の公式UIライブラリ「Tailwind UI」、サービス拡大を視野に「Tailwind Plus」へ名称変更
  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説
  2. 2
    マイクロソフト、VSCodeの新機能「Copilot Next Edit Suggestions」のプレビュー版公開
  3. 3
    世界6000万ユーザーの「TimeTree」、サービスの未来を見据えて挑んだデータベース移行の舞台裏
  4. 4
    C# 13の新機能を理解する――暗黙的なインデックスアクセスとallows ref struct
  5. 5
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  6. 6
    データサイエンス基礎を高校数学から復習しよう! D3.jsでデータを表現する
  7. 7
    macOS上のアプリケーションからChatGPTが呼び出せるように。各種IDEやターミナル、メモなどが対応
  8. 8
    ITエンジニア本大賞2025のプレゼン大会をレポート、最終決戦に臨んだ本に込められた想いとは
  9. 9
    Linuxディストリビューション「EndeavourOS Mercury」が一般提供開始
  10. 10
    ITエンジニア本大賞2025、技術書部門とビジネス書部門の大賞が決定!