一個 MVC 框架以 MVVM 之「魂」復活了!

GitHub: https://github.com/houfeng/mokithtml

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:vue

<div id="app">
  <input type="text" m:model="name" />
  <button m:on:tap="say(name)">click me</button>
</div>

JavaScript:react

//啓動應用
mokit({
  element: document.getElementById('app'),
  data:function(){
    return {
      name: '世界'
    };
  },
  say: function (name) {
    alert('hello '+ name);
  }
}).start();

定義組件

編寫組件:git

//定義一個 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:github

<div id="app">
  <m:hello m:prop:name="name">click me</m:hello>
</div>

JavaScript:mvc

//啓動應用
mokit({
  element: document.getElementById('app'),
  components:{ Hello: Hello }
  data:function(){
    return {
      name: '世界'
    };
  }
}).start();

在線示例

規劃

  • 支持服務端渲染
相關文章
相關標籤/搜索