Mithril.js 是一个客户端的 JavaScript MVC 框架。
随着 Flarum 也使用了 Mithril,这个小框架在 github 上的 star 数量也已经突破了 4K。
Mithril 是什么?
Mithril 是一个客户端 javascript MVC 框架,即它是一个工具,使应用程序代码分为数据层(Model), UI 层(View),黏合层(Controller)。
Mithril 通过 gzip 压缩后,仅有 12kb 左右,这要归功于 small, focused, API。它提供了一个模板引擎与一个虚拟 DOM diff 实现高性能渲染,还提供了其它高级工具,以及支持路由和组件化。
框架的目标是使应用程序代码更容易组织,可读和可维护,帮助你成为一个更好的开发者。
不像某些框架,Mithril 努力避免将您锁定到某个 web 框架上:您可以尽量少地使用您所需要的框架。
然而,使用其整个工具库可以带来很多好处:学习使用函数式编程和巩固良好的编码实践,OOP 和 MVC 只是其中的一些。
特点
轻量级
- gzip压缩后仅仅12kb,无依赖
- 非常少的API,非常容易的学习曲线
鲁棒性
- 默认安全的模板
- 层次化的MVC组件(hierarchical)
快速
- 虚拟DOM和编译模板
- 智能的重绘系统(redrawing)
入门示例代码
//model 模型
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")
]);
}
};
//initialize 初始化
m.mount(document.getElementById("example"), Demo);
相关推荐
前端项目-mithril,mithril.js beta build-在发布之前使用它来帮助我们测试发布。
mithril.js-doc:Mithril文档
mithril.js 什么是秘银? 用于构建单页应用程序的现代客户端JavaScript框架。 它体积小(压缩后为9.99 KB),速度快,并且提供开箱即用的路由和XHR实用程序。 Mithril被Vimeo和Nike等公司以及Lichess等开源平台...
用于构建单页应用程序的现代客户端Javascript框架。 它很小(8.87 KB gzip),速度快,提供开箱即用的路由和XHR实用程序。
create-mithril-app-使用webpack设置mithril.js项目 为您创建一个mithril.js项目。用法首先使用npm i -g create-mithril-app@latest安装此应用npm i -g create-mithril-app@latest ,然后键入以下内容: create-...
基于 mithril.js ,javascript ,scss写一个可拖动的滑块组件,供大家参考,具体内容如下 问题描述: 需求需要实现一个可拖动的滑块组件,但是又不能用UI框架,只好自己动手写一个了。 废话不多说,直接上代码。 ...
Mithril.js 是一个客户端的 JavaScript MVC 框架。可将应用分成数据层、UI层和控制层。Mithril 压缩后只有 3kb 左右。API 提供一个模板引擎,带 DOM diff 实现,支持路由和组合。 示例代码: //namespace ...
Mithril被Vimeo和Nike等公司以及Lichess等开源平台使用 :thumbs_up: 。 秘银支持IE11,Firefox ESR和Firefox,Edge,Safari和Chrome的最后两个版本。 无需填充胶。 :OK_hand:安装CDN <!-- Development: ...
(来自mithril.js自述文件) Mithril是一个客户端MVC框架-一种以易于考虑和维护的方式来组织代码的工具。轻的压缩仅7.8 kB,无依赖性小API,小学习曲线强壮的默认安全模板通过组件的分层MVC快速地虚拟DOM差异和可...
关于mDrupal为Mithril.js的m.request函数提供了Drupal友好的包装器。 mDrupal的目标是成为一种轻量级的解决方案,以将Mithril.js用作Drupal的前端框架。 该库未压缩的文件少于10kb。要求秘银Drupal 8 RESTful Web...
npm install -D @types/mithril 对于秘银的预发布版本,在next这个回购分公司将与对准next秘银的分支。 您可以通过以下方式安装这些类型: npm install -D MithrilJS/mithril.d.ts#next 不建议从此存储库中安装...
秘银之旅组件 导游组件 安装 下载 NPM: npm install mithril-tour-component ... script src =" path/to/mithril.js " type =" text/javascript " > </ script > < script src =" path/to/mithril-tour-c
正在进行中 - 更严格的 Mithril 类型定义由于 Mithril 的高度动态性,精彩的的当前 .d.ts使用“any”。 但是“any”否认了静态类型的大部分好处,因此这是一种将“any”的用法替换为泛型、rest args、重载、联合类型...
Mithril.js的简单模式
ghcjs-秘银 ghcjs 的 mithril.js 绑定
script src =" mithril.js " > </ script > < script src =" mithril-ui-router.js " > </ script > </ head > 您可以通过以下方式与Node.js一起使用: var mx = requi
基于mithril.js的应用程序框架。 安装 npm $ npm install --save-dev yosami 安装 $ ./node_modules/.bin/yosami 用法 创建控制器 $ npm run generate controller hoge 启动开发服务器 $ npm run dev 使用权 ...
秘银小工具与 Mithril.js 一起使用的工具集合该项目目前正在开发中! 随意检查一下,但要意识到其中大部分内容可能会发生变化。当前组件: 桌子接收一个二维数组第一个子数组是标题行单击标题时的列排序分页和无限...
var mithril = require ( 'metalsmith-mithril' ) ; Metalsmith ( __dirname ) . use ( mithril ( { ext : '.m.js' , // default concurrent : 2 // how many files will be processed in parallel, default is ...
要么简单地在你的项目中包含 mithril.sugartags.min.js,要么通过 bower 安装: bower install mithril.sugartags --save 或者通过 npm 安装: npm install mithril.sugartags --save 它有什么作用? 使用糖...