一个 MVC 框架以 MVVM 之「魂」复活了!
GitHub: https://github.com/houfeng/mokit
Mokit 最初编写于 2012 年,是一个面向移动应用的前端 mvc 框架,v3 版本进行了大量的重构或重写,并尽可能的保持了和之前版本类似的 API,
v3 是一个「极轻量」的 MVVM 框架,相较目前主流的类似的框架(react/vue/angular),mokit v3 更为「轻量」,希望为开发人员提供多一种的选择。
相较 v2 主要变化
- MVC -> MVVM
- 原来的 View 类改为 Component,同时取消了 Controller 类
- options 选项改为 properties,并支持计算属性
- onRender 生命周期函数改为 onReady
- 新增支持 data 选项
- 新增支持 watches 选项
- 分拆 template 选项功能,不再自动检查是否为 Element,同时新增 element 选项
- 指令默认前缀由 data- 改为 m:,同时支持自定义指令
特性
- 面向移动设备,内置支持常用「手势事件」并可以轻松添加自定义事件。
- 极其轻量「核心 + 手势 API + Router」仅 13k (uglify+gzip)
- 提供类 WebCompoents 的支持,并支持「组件继承」
Hello 世界
HTML:
<div id="app">
<input type="text" m:model="name" />
<button m:on:tap="say(name)">click me</button>
</div>
JavaScript:
//启动应用
mokit({
element: document.getElementById('app'),
data:function(){
return {
name: '世界'
};
},
say: function (name) {
alert('hello '+ name);
}
}).start();
定义组件
编写组件:
//定义一个 hello 组件
var Hello = new mokit.Component({
template: '<button m:on:tap="say(name)" m:content></button>',
properties: { name: null},
say: function (name) {
alert('hello '+ name);
}
});
HTML:
<div id="app">
<m:hello m:prop:name="name">click me</m:hello>
</div>
JavaScript:
//启动应用
mokit({
element: document.getElementById('app'),
components:{ Hello: Hello }
data:function(){
return {
name: '世界'
};
}
}).start();
在线示例
规划
- 支持服务端渲染
作者:houfeng
出处:http://houfeng.cnblogs.com
本文版权归作者和博客园共有,未经作者同意请保留此声明.
出处:http://houfeng.cnblogs.com
本文版权归作者和博客园共有,未经作者同意请保留此声明.
分类:
Node.js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
2015-12-06 分享一个基于 Node.js 的 Web 开发框架 - Nokitjs