VNDB fork of mithril.js
Find a file
John Markos O'Neill 2ed4f2b38c Adds repository field to package.json.
Fixes name of grunt-jscs.
2015-01-01 23:46:53 -08:00
archive v0.1.28 2014-12-31 20:51:56 -05:00
deploy update docs for component 2014-07-02 09:31:36 -04:00
docs update change log 2014-12-31 20:49:54 -05:00
tests Merge branch 'next' into perf 2014-12-12 09:20:49 -05:00
.gitignore restoring state 2014-11-13 21:50:26 -05:00
.npmignore adds saucelabs integration to unit tests 2014-07-25 11:23:47 -04:00
.travis.yml Updated Travis CI config to run e2e tests 2014-05-28 23:46:09 +03:00
Gruntfile.js version bump 2014-12-31 20:50:17 -05:00
LICENSE Initial commit 2014-03-16 18:59:39 -07:00
mithril.closure-compiler-externs.js externs for closure compiler 2014-07-21 22:48:24 -04:00
mithril.d.ts Updating typescript redraw definition to allow m.redraw.strategy 2014-12-04 10:59:05 +13:00
mithril.js add comment for obscure snippet 2014-12-31 20:49:38 -05:00
mithril.min.js v0.1.28 2014-12-31 20:51:56 -05:00
mithril.min.js.map v0.1.28 2014-12-31 20:51:56 -05:00
package.json Adds repository field to package.json. 2015-01-01 23:46:53 -08:00
README.md doc tweaks 2014-11-12 20:06:24 -05:00

Build Status

Mithril

A Javascript Framework for Building Brilliant Applications

See the website for documentation

There's also a blog and a mailing list


What is Mithril?

Mithril is a client-side MVC framework - a tool to organize code in a way that is easy to think about and to maintain.

Light-weight

  • Only 5kb gzipped, no dependencies
  • Small API, small learning curve

Robust

  • Safe-by-default templates
  • Hierarchical MVC via components

Fast

  • Virtual DOM diffing and compilable templates
  • Intelligent auto-redrawing system

Sample code

//namespace
var app = {};

//model
app.PageList = function() {
	return m.request({method: "GET", url: "pages.json"});
};

//controller
app.controller = function() {
	var pages = app.PageList();
	return {
		pages: pages,
		rotate: function() {
			pages().push(pages().shift());
		}
	}
};

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


//initialize
m.module(document.getElementById("example"), app);

Learn more