Mithril

輝かしいアプリケーションを構築するためのJavaScriptフレームワーク

ガイド v0.2.5のダウンロード

Flattr 変更履歴

Mithrilとは?

MithrilはクライアントサイドMVCフレームワークです。コードをきれいに構成して、構造について考えるのを簡単にしたり、メンテナンスしやすくします。

軽量

  • gzip圧縮時でたったの7.8KBで、他への依存がない
  • 小さくシンプルなAPIと、低い学習コスト

信頼性

  • デフォルト設定が安全側に振られたテンプレート
  • コンポーネントによる階層型MVC

高速

  • Virtual DOM差分更新と、コンパイル可能なテンプレート
  • インテリジェントな自動再描画システム

サンプルコード


//モデル
var Page = {
	list: function() {
		return m.request({method: "GET", url: "pages.json"});
	}
};

var Demo = {
	//controller
	controller: function() {
		var pages = Page.list();
		return {
			pages: pages,
			rotate: function() {
				pages().push(pages().shift());
			}
		}
	},

	//view
	view: function(ctrl) {
		return m("div", [
			ctrl.pages().map(function(page) {
				return m("a", {href: page.url}, page.title);
			}),
			m("button", {onclick: ctrl.rotate}, "Rotate links")
		]);
	}
};


//初期化
m.mount(document.getElementById("example"), Demo);

出力

パフォーマンス

下記の実行時間のテストを行う場合は、それぞれのリンクをクリックして、好きなブラウザの開発者ツールのプロファイラを起動してページリフレッシュの実行時間を計測してください(数値が少ないほうが良い)。より詳しい説明

ロード

Mithril 0.28ms
jQuery 13.11ms
Backbone 18.54ms
Angular 7.49ms
React 24.99ms

レンダリング

Mithril 9.44ms (uncompiled)
jQuery 40.27ms
Backbone 23.05ms
Angular 118.63ms
React 79.65ms

安全性

Mithrilのテンプレートはデフォルトで安全な動作をするようになっています。無理やり作ろうとしなければセキュリティホールを作ることはできません。

各々のフレームワークのテストを実行する場合は、それぞれのリンクをクリックしてください。もしアラートボックスが表示された場合には、そのフレームワーク上ではセキュリティを維持するための仕事がたくさんあるということです。

テスト結果

Mithril (pass) ✓
jQuery (fail) ✗
Backbone (fail) ✗
Angular (pass) ✓
React (pass) ✓

ガイド

小さなアプリケーションを作ります。コツを覚えましょう。

ガイドを読む

API

参照用のドキュメントとコードサンプルです。

ドキュメントを読む

Mithrilについて知る

Mithrilのポテンシャルを引き出す使い方を紹介するブログです。

記事を読む

メーリングリスト

質問を投稿したり、Mithril関連の話題について議論をするメーリングリストです。

メーリングリストへ飛ぶ(英語)

ソーシャルメディア