Ukulelejs 發佈——羽量級JS Framework

  1. 什麼是Ukulelejs javascript

  2. 第一個Hello World html

  3. Ukulelejs 目前提供的主要功能 java

  4. 爲什麼起名叫Ukulelejs jquery

  5. 不足之處,以及後續版本將要加入的功能 git

  6. How to use 程序員

  7. 關於做者 github

  8. 更新日誌 api

  9. source code
    app

什麼是Ukulelejs?
做者我的編寫的超輕量級Javascript框架(壓縮後大小僅僅爲6 kb),底層依賴於jquery,主要功能提供了JS Object與html標籤two way binding。(相似Angularjs) 框架

第一個Hello World

<body>
    <div uku-application>
        <input type="text" uku-value="myCtrl.message">
        <br/>
        <p>{{myCtrl.message}}</p>
    </div>
</body>
<script type="text/javascript">
    function MyController() {
        this.message = "";
    }

    $(document).ready(function () {
        var ukulele = new Ukulele();
        ukulele.registerController("myCtrl", new MyController());
        ukulele.init();
    });
</script>

Examples 演示地址

Ukulelejs 目前提供的主要功能

  • uku-repeat標籤循環渲染

    • <ul><li uku-repeat="item in myCtrl.items">{{item.name}}</li><ul>
  • anyObject.anyAttribute 與 任意 html標籤的attribute綁定

    • <input type="text" uku-value="myCtrl.message">
  • anyObject.anyAttribute 與 html標籤的text綁定

    • <p>{{myCtrl.message}}</p>
  • anyObject.anyFunction 與 任意 html標籤的attribute綁定

    • <input type="text" uku-value="myCtrl.getMessage()">
  • anyObject.anyFunction 與 任意 html標籤的text綁定

    • <p>{{myCtrl.getMessage()}}</p>
  • anyObject.anyFunction 與 任意 html標籤的onXXXX事件的綁定

    • <button uku-onclick="myCtrl.sayHello()">Say Hello</button>

爲什麼起名叫Ukulelejs

做者本人是一名Ukulele愛好者,Ukulele是一種來自於夏威夷的4弦小吉他,她可愛小巧,方便攜帶,易於學習,而且有着本身獨特的音色。做者指望Ukulelejs也能給使用她的人帶來相同的感覺。

不足之處,後續版本將要加入的功能

不支持表達式運算,不支持邏輯表達式(例如<p>{{object.a + object.b}}</p>),目前版本不支持,估計也永遠不會支持。workaround的方式能夠寫function來實現(如<p>{{object.function_A_add_B()}}</p>),由於做者感受把邏輯寫在視圖裏並非一個很好的作法(只是貪圖方便罷了)。

其它新的功能還沒想好

How to use

值得一提的是Ukulelejs沒有api文檔,全部的使用方法歸結爲5點

  1. 引入jquery和ukulelejs.js,注意前後順序

    1. <script type="text/javascript" src="jquery-2.1.4.min.js"></script>
      <script type="text/javascript" src="ukulele.min.js"></script>
  2. 在document的ready中,聲明一個Ukulelejs對象,並註冊你要綁定的Object

    1. function MyController(){
          this.message = "";
      }
      $(document).ready(function(){
          var uku = new Ukulele();
          uku.registerController("myCtrl",new MyController());
          uku.init();
      });
  3. 在你想要循環渲染的地方使用uku-repeat標籤

    1. 具體使用方法參考上文 「Ukulelejs目前提供的主要功能

  4. 在你想要綁定的html屬性前加上uku-,在你想要綁定的text處,加上{{ }},在你想要綁定的事件前也加上uku- 

    1. 具體使用方法參考上文 「Ukulelejs目前提供的主要功能

  5. Ukulelejs支持多層的repeat嵌套(n層for循環),也支持深度attribute/function綁定(anyObject.attr1.subattr2.xxx.yyy.xxx)

關於做者

做者本來是一位資深Flex程序員,接觸了JavaScript後但願,JavaScript也能和Flex的Native功能同樣,支持model binding和dom操做二者並存的開發模式,因此參考Angular,開發了這套框架

更新日誌

2015-06-21 : 支持 function傳參

2015-06-25 : 支持function的參數來自於不一樣的scope。

2015-06-29 :支持include功能,加載外部html tag

2015-06-29 :優化了example頁面

Source Code

Git: https://git.oschina.net/momoko8443/ukulelejs.git

        https://github.com/momoko8443/ukulelejs

相關文章
相關標籤/搜索