一个 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();

在线示例

规划

  • 支持服务端渲染

转载于:https://www.cnblogs.com/houfeng/p/6137648.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MVVM框架MVC框架是两种常见的软件架构模式,它们在应用程序的组织和设计上有一些区别。 MVC(Model-View-Controller)是一种经典的软件架构模式,它将应用程序分为三个主要部分: 1. 模型(Model):负责处理数据和业务逻辑。 2. 视图(View):负责展示数据给用户,并接收用户的输入。 3. 控制器(Controller):负责协调模型和视图之间的交互,处理用户的输入并更新模型和视图。 MVVM(Model-View-ViewModel)是一种相对较新的软件架构模式,它在MVC的基础上引入了一个新的组件: 1. 模型(Model):同样负责处理数据和业务逻辑。 2. 视图(View):负责展示数据给用户,并接收用户的输入。 3. 视图模型(ViewModel):作为视图和模型之间的中间层,负责将模型中的数据转换为视图可以使用的形式,并处理视图的状态和行为。 区别如下: 1. 数据绑定:MVVM框架通过数据绑定机制实现视图和视图模型之间的自动更新,而MVC框架通常需要手动更新视图。 2. 视图模型:MVVM引入了视图模型,将视图的状态和行为从视图中分离出来,使得视图更加专注于展示数据。 3. 测试性:由于视图模型的存在,MVVM框架更容易进行单元测试,因为视图模型可以独立于视图进行测试。 4. 可维护性:MVVM框架通过将业务逻辑从视图中分离出来,使得代码更加清晰和可维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值