Ukulelejs v1.0 發布 - 羽量級JS Framework
作者個人編寫的超輕量級Javascript框架,底層依賴于jquery,主要功能提供了js Object對象與html標簽綁定的two way binding。(類似Angularjs)
什么是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>
Ukulelejs v1.0目前提供的主要功能
-
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也能給使用她的人帶來相同的感受。
后續版本將要加入的功能
最近的一個版本應該會加上include的功能,即在一個html頁面中支持引入其他的html代碼。這樣做的目的是用戶可以定制可重用的Component,方便開發。
How to use
值得一提的是Ukulelejs沒有api文檔,所有的使用方法歸結為5點
-
引入jquery和ukulelejs.js,注意先后順序
-
<script type="text/javascript" src="jquery-2.1.4.min.js"></script> <script type="text/javascript" src="ukulele.min.js"></script>
-
在document的ready中,聲明一個Ukulelejs對象,并注冊你要綁定的Object
-
function MyController(){ this.message = ""; } $(document).ready(function(){ var uku = new Ukulele(); uku.registerController("myCtrl",new MyController()); uku.init(); }); -
在你想要循環渲染的地方使用uku-repeat標簽
-
具體使用方法參考上文 “Ukulelejs v1.0目前提供的主要功能”
-
在你想要綁定的html屬性前加上uku-,在你想要綁定的text處,加上{{ }},在你想要綁定的事件前也加上uku-
-
具體使用方法參考上文 “Ukulelejs v1.0目前提供的主要功能”
-
Ukulelejs支持多層的repeat嵌套(n層for循環),也支持深度attribute/function綁定(anyObject.attr1.subattr2.xxx.yyy.xxx)
關于作者
作者原本是一位資深Flex程序員,接觸了JavaScript后希望,JavaScript也能和Flex的Native功能一樣,支持model binding和id select 兩者并存的開發模式,所以參考Angular,開發了這套框架。
Source Code
Git: https://git.oschina.net/momoko8443/ukulelejs.git