JavaScript 模板引擎:Velocity.js
velocity.js是velocity模板語法的javascript實現。Velocity 是基于Java的模板引擎,廣泛應用在阿里集體各個子公司。Velocity模板適用于大量模板使用的場景,支持復雜的邏輯運算,包含基本數據類型、變量賦值和函數等功能。
Features
- 支持客戶端和服務器端使用
- 語法是富邏輯的,構成門微型的語言
- 語法分析和模板渲染分離
- 基本完全支持velocity語法
- 瀏覽器使用支持模板之間相互引用,依據kissy模塊加載機制
- 三個Helper,友好的數據模擬解決方案
- Vim Syntax
Install
via npm:
$ npm install velocity.jsBroswer Support
點擊此處可以體驗web 端velocity語法解析過程,注:使用ACE作為代碼編輯器,僅支持高級瀏覽器訪問。
執行cake命令進行打包velocity.js瀏覽器端腳本:
$ cake --build需要cli下安裝coffeejs,暫時打包是為kissy所使用的,velocity.js需要的一些常用的 ecma5功能,比如foreach, some, isArray等,在node環境下是自帶的功能,而web端的兼容是交給已有的類庫解決。需要自行提供一組跨瀏覽器的api,比如kissy打包:
//api map
var utils = {
forEach : S.each,
some : S.some,
mixin : S.mix,
guid : S.guid,
isArray : S.isArray,
indexOf : S.indexOf,
keys : S.keys,
now : S.now
}; Velocity語法具有很高的容錯能力,類似于html結構的解析,同時語法規則復雜,所以語法解釋器執行性能可能比較慢,velocity.js把語法結構分析運算和語法執行兩個過程獨立出來,第一步,語法結構分析返回一個數組(語法樹),描述velocity語法,語法執行使用數據和語法樹,計算模板最終結果。
執行build后,得到兩個文件,分別是build/velocity/下的index.js和parse.js,兩者相互獨立,parse.js語法分析過程可以放在本地完成,執行命令:
把語法分析和模板拼接分開,為了方便在本地編譯語法樹,減少在web端js運算。本地編譯模板的思路,源自KISSY的xtemplate。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!