Mustache 是個不錯的js模板引擎,源碼:https://github.com/janl/mustache.js
演示:http://mustache.github.com/#demo,不僅支持js,還有PHP/RUBY/nodejs等好多語言。市面上的JS模板引擎也不少了,在公司的項目中,考慮在mustache.js、jquery-tmpl兩個里面選擇,最后選擇了mustache,因為它支持的語言更多些,可以寫成JQ插件,不依賴其他庫,用在團隊比較適合,并且一些不錯的web項目也選擇了它,性能方面應該都不會有太大差距。
js模板引擎可以把模板分離出來,在ajax使用較多的場合非常適用。以前我們可能會使用拼接的方法,比如:
- var html=[];
- html.push(‘<h1>’); html.push(‘header’);
- html = html.push(‘</h1>’).join(‘’);
當遇到數據結構復雜 、大量頁面都需要這樣做的時候,js看起來可能非常亂,維護很不便。使用js模板引擎,可以方便的把view分離出來。
mustache的一些說明:http://mustache.github.com/mustache.5.html
if語句
因為是Logic-less templates,無邏輯,只有標簽,無if、for等,不過這些邏輯可以在寫在js里面。基本還是適合大部分場合了。如果使用if語句,可以在js里面做一些判斷增加一個has標簽,然后在模板里面調用,比如再模板里可以這樣:
- {{#hasValue}}
- 有{{value}}的情況
- {{/hasValue}}
- {{^hasThumb}}
- 無value,顯示默認值
- {{/hasThumb}}
/ 分類: 開發,實踐 / TrackBack標簽: javascript, 模板引擎