LoginSignup
2
5

More than 5 years have passed since last update.

勉強会JS編<2> クライアントサイドMVCフレームワーク

Last updated at Posted at 2016-01-26

関連記事

背景

アプリケーションの変遷

  • スタンドアロンアプリケーション
    • Webアプリケーションではなく、スタンドアロン環境で動くGUIアプリケーション。
    • クライアント・サーバ方式(多数のスタンドアロンアプリケーションがDBサーバとSQLで通信)
  • シンプルWebアプリケーション
    • サーバ側でのプログラミングを中心にしたWebアプリケーション
    • 画面遷移とGUIの状態を一致させることで、状態を意識しないプログラム実行環境が実現
    • HTMLのGUI部品により、表現力や操作性はスタンドアロンアプリケーションに比べて低下したが、アプリケーション開発の生産性は大きく向上
  • リッチWebアプリケーション
    • リッチなGUIを持つWebアプリケーション
    • 画面遷移はほとんどない。
    • 裏でサーバと通信する必要があるデータだけリアルタイムでやりとりしたり、リッチなモーダルダイアログを表示する。
    • GUI制御のプログラムをJavaScriptで書く必要がある。

複雑化するクライアント側のJavaScript

  • jQueryによってAjaxやDOM操作によるページの更新が簡単になったが、増大していくコードを管理する仕組みは提供していない。
  • 大規模なアプリケーションのコードを管理しやすくするためフレームワークが必要になる。

クライアント側フレームワークの種類

  • React.js
  • Angular.js
  • Angular.js 2.0
  • Backbone.js
  • Vue.js
  • Mithril.js
  • Aurelia.js
  • Knockout.js
  • Ember.js
  • Riot.js
  • Ractive.js

Backbone.js

JavaScriptをより良く構造化するためのフレームワーク

Backbone.jsを使っているところ

機能

  • Key-Value型のデータとカスタムイベントを持つモデル
  • 複数のモデルをリスト化し、リストを操作するAPIが整ったコレクション
  • HTMLの描画とイベントハンドリングを担当するビュー
  • サーバとJSON(JavaScript Object Notation)をやりとりするRESTfulインタフェース

主要なクラス

  • Backbone.Model
    • Key-Value型のデータ構造
    • 通常JSON APIを通じてサーバから受け取ったものを扱う。
    • データを処理するための各種メソッドが実装
    • サーバサイドとデータのやりとり
    • データ更新にカスタムイベントを発火するなど
  • Backbone.Collection
    • 一連のモデルを扱うためのクラス
    • コレクションはモデルを配列のようにグループ化して保持する。
    • モデルの追加・削除
    • サーバからまとめてモデルを取得
  • Backbone.View
    • モデルに格納されたデータを表示するためのクラス
    • HTMLを描いたり、モデルの更新やDOMのイベントを監視してHTMLを更新する。
  • Backbone.Router
    • URLのハッシュフラグメント(#以降)を管理するためのクラス
    • 特定のページや状態をハッシュフラグメントに対応させて管理することで、ユーザがブックマークしたりパーマリンクで共有するようになる。

参考書籍

  • JavaScript徹底攻略
  • JavaScriptエンジニア養成読本
2
5
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
2
5