`

是时候使用 Mithril.js 了

阅读更多

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);

性能


mithrils.js 性能

参考

9
2
分享到:
评论

相关推荐

    mithriljs用于构建单页应用程序的现代客户端Javascript框架

    Mithril.js是一款轻量级、高效的现代JavaScript框架,专为构建单页面应用程序(SPA)设计。它以其小巧的体积(8.87 KB gzip压缩后)和出色的性能而受到开发者喜爱。Mithril.js的核心特性包括虚拟DOM、声明式路由和...

    前端项目-mithril.zip

    "前端项目-mithril.zip" 这个标题表明这是一个关于前端开发的项目,主要使用了名为"Mithril"的JavaScript框架。".zip"格式则说明这是一个压缩包,里面包含了该项目的源代码和其他相关文件。 **描述解析:** 描述中...

    mithril.js-doc:Mithril文档

    Mithril.js 是一个轻量级的JavaScript框架,专为构建现代Web应用而设计。它以其简洁、高效和模块化的设计赢得了开发者们的喜爱。Mithril.js-doc 是这个框架的官方文档,旨在帮助开发者理解Mithril的核心概念、API...

    mithril.js:用于构建出色应用程序JavaScript框架

    mithril.js 什么是秘银? 用于构建单页应用程序的现代客户端JavaScript框架。 它体积小(压缩后为9.99 KB),速度快,并且提供开箱即用的路由和XHR实用程序。 Mithril被Vimeo和Nike等公司以及Lichess等开源平台...

    create-mithril-app:使用webpack设置mithril.js项目

    create-mithril-app-使用webpack设置mithril.js项目 为您创建一个mithril.js项目。用法首先使用npm i -g create-mithril-app@latest安装此应用npm i -g create-mithril-app@latest ,然后键入以下内容: create-...

    ghcjs-mithril:Haskell 绑定到 mithril.js

    Mithril.js 是一个轻量级的前端JavaScript框架,设计用于构建单页应用程序(SPA)。通过 **ghcjs-mithril**,Haskell 开发者可以利用 mithril.js 的优点,同时保持Haskell的静态类型安全和强大抽象能力。 **Haskell...

    mithril-patterns:从互联网收集的 mithril.js 约定和最佳实践

    Mithril.js 是一个轻量级的JavaScript库,用于构建单页应用(SPA)。它以其简洁、高效和易于理解的API著称。这个名为“mithril-patterns”的资源集合了从互联网上广泛搜集的Mithril.js开发中的最佳实践和约定,帮助...

    qcf:使用Mithril.js的简单Go Web应用程序

    在本项目中,"qcf"是一个简单的Go Web应用程序,它使用了Mithril.js作为前端框架来构建用户界面。Mithril.js是一个轻量级的JavaScript库,以其快速渲染和小巧的体积著称,适合用于构建单页应用程序(SPA)。下面我们...

    JavaScriptMVC框架Mithril.zip

    Mithril.js 是一个客户端的 JavaScript MVC 框架。可将应用分成数据层、UI层和控制层。Mithril 压缩后只有 3kb 左右。API 提供一个模板引擎,带 DOM diff 实现,支持路由和组合。 示例代码: //namespace ...

    -mithril.js

    Mithril被Vimeo和Nike等公司以及Lichess等开源平台使用 :thumbs_up: 。 秘银支持IE11,Firefox ESR和Firefox,Edge,Safari和Chrome的最后两个版本。 无需填充胶。 :OK_hand:安装CDN <!-- Development: ...

    mithril-elements:mithril.js 和 document-register-element

    在Web开发领域,Mithril.js 是一个轻量级的JavaScript框架,以其高效、模块化和易于学习的特性而受到开发者们的喜爱。它提供了虚拟DOM(Virtual DOM)的概念,帮助实现高效的UI更新。而Document-register-element则...

    moria:ClojureScript包装器,用于使用Mithril.js构建出色的应用程序

    (来自mithril.js自述文件) Mithril是一个客户端MVC框架-一种以易于考虑和维护的方式来组织代码的工具。轻的压缩仅7.8 kB,无依赖性小API,小学习曲线强壮的默认安全模板通过组件的分层MVC快速地虚拟DOM差异和可...

    generator-mithril-ore:为大型应用程序设计的 Mithril.js 生成器

    《generator-mithril-ore:基于Mithril.js构建大型应用的神器》 在现代Web开发领域,JavaScript框架和库的...因此,如果你正在考虑使用Mithril.js来开发大规模应用,generator-mithril-ore无疑是一个值得尝试的利器。

    mdrupal:为Mithril.js的m.request函数提供Drupal友好的包装器

    关于mDrupal为Mithril.js的m.request函数提供了Drupal友好的包装器。 mDrupal的目标是成为一种轻量级的解决方案,以将Mithril.js用作Drupal的前端框架。 该库未压缩的文件少于10kb。要求秘银Drupal 8 RESTful Web...

    mithril-palantir:mithril.js 检查器 - 允许检查性能和流量控制的 Sweetjs 宏

    4. **Sweet.js**:Sweet.js是一个JavaScript宏处理器,它允许开发者使用自定义的语法糖来扩展JavaScript语言,"Mithril-palantir"中的宏可能就是用Sweet.js实现的。 5. **Babel**:Babel是一个广泛使用的JavaScript...

    mithril.d.ts:mithril.js的类型

    npm install -D @types/mithril 对于秘银的预发布版本,在next这个回购分公司将与对准next秘银的分支。 您可以通过以下方式安装这些类型: npm install -D MithrilJS/mithril.d.ts#next 不建议从此存储库中安装...

    mithril-modal:Mithril.js的简单模式

    Mithril.js是一款轻量级的JavaScript框架,它以其简洁的API和高效的渲染而受到开发者们的欢迎。在Mithril.js的世界中,"mithril-modal"是一个用于创建模态对话框的插件,旨在简化在应用程序中添加弹出窗口或模态框的...

    mithril-tour-component:Mithril.js的导游组件

    秘银之旅组件 导游组件 安装 下载 NPM: npm install mithril-tour-component ... script src =" path/to/mithril.js " type =" text/javascript " > </ script > < script src =" path/to/mithril-tour-c

    HeavyMithril:mithril.js 的更严格的 TypeScript 定义

    正在进行中 - 更严格的 Mithril 类型定义由于 Mithril 的高度动态性,精彩的的当前 .d.ts使用“any”。 但是“any”否认了静态类型的大部分好处,因此这是一种将“any”的用法替换为泛型、rest args、重载、联合类型...

    mithril-ui-router:Mithril.js的基于状态的路由器

    script src =" mithril.js " > </ script > < script src =" mithril-ui-router.js " > </ script > </ head > 您可以通过以下方式与Node.js一起使用: var mx = requi

Global site tag (gtag.js) - Google Analytics