JavaScript 模板引擎:Velocity.js

jopen 11年前發布 | 26K 次閱讀 模板引擎 Velocity.js

velocity.js是velocity模板語法的javascript實現。Velocity 是基于Java的模板引擎,廣泛應用在阿里集體各個子公司。Velocity模板適用于大量模板使用的場景,支持復雜的邏輯運算,包含基本數據類型、變量賦值和函數等功能。

Features

  • 支持客戶端和服務器端使用
  • 語法是富邏輯的,構成門微型的語言
  • 語法分析和模板渲染分離
  • 基本完全支持velocity語法
  • 瀏覽器使用支持模板之間相互引用,依據kissy模塊加載機制
  • 三個Helper,友好的數據模擬解決方案
  • Vim Syntax

Install

via npm:

$ npm install velocity.js

Broswer 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.jsparse.js,兩者相互獨立,parse.js語法分析過程可以放在本地完成,執行命令:

把語法分析和模板拼接分開,為了方便在本地編譯語法樹,減少在web端js運算。本地編譯模板的思路,源自KISSY的xtemplate

項目主頁:http://www.baiduhome.net/lib/view/home/1398818988250

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!