高性能JavaScriptテンプレートエンジンartTemplateの紹介
4051 ワード
artTemplate-3.0
次世代javascriptテンプレートエンジン
目次特性 快速上手 テンプレート文法 メソッド NodeJS プリコンパイルを使用する 更新ログ ライセンスプロトコル 特性は性能が優れており、実行速度は通常Mustacheとtmplの20倍以上(性能試験) である.は運転時のデバッグをサポートしています.異常テンプレートのあるステートメントを正確に位置決めできます. 対NodeJS Express友好サポート 安全で、デフォルトでは出力を転送し、サンドボックスでコンパイルされたコードを実行します.(Nodeバージョンはユーザアップロードのテンプレートを安全に実行できます.) サポートinclude文 は、ブラウザ側で経路別にテンプレート(詳細)をロードすることを実現することができる .はプリコンパイルをサポートし、テンプレートを非常にシンプルなjsファイル に変換することができます.テンプレート文は簡潔で、プレフィックス参照データを必要とせず、簡潔なバージョンと元の構文バージョンがある場合はオプション である.は、すべての流行のブラウザ をサポートします.
手っ取り早い
テンプレートを作成
type="text/html"のscriptタグを使ってテンプレートを保存します.
テンプレート文法
二つのバージョンのテンプレート文法が選択できます.
簡潔な文法
使うことを勧めて、文法は簡単で実用的で、読み書きに有利です.
げんせい文法
ダウンロード template.js (簡潔な文法版、2.7 kb) template-native.js (原生文法版、2.3 kb) 方法
template(id,data)
IDに基づいてテンプレートを描画します.内部はdocument.getElemenntById(id)によってテンプレートを検索します.
dataパラメータがない場合、レンダリング関数を返します.
template.com mpile(source,options)
レンダリング関数を返します.プレゼンテーション
template.render(source,options)
レンダリングの結果を返します.
template.helper(name,calback)
補助方法を追加します.
時間フォーマット:プレゼンテーション
template.co nfig(name,value)
エンジンのデフォルトの設定を変更します.
openTag
String
'{{}
論理文法開始フラグ
closeTag
String
「}」
論理文法終了フラグ
エスケープ
ボロア
true
出力HTML文字をエンコードしますか?
cache
ボロア
true
キャッシュを開くかどうか(Ooptionsのfilenameフィールドに依存)
compless
ボロア
false
HTMLの空き文字を圧縮しますか?
プリコンパイルを使う
ブラウザの制限を突破して、フロントエンドのテンプレートにバックエンドのテンプレートと同じ同期の「ファイル」ローディング能力を持たせることができます.
一、ファイルとディレクトリでテンプレートを組織するは、テンプレートを非常にシンプルなjsファイルに変換することができる(エンジンに依存しない) .同期テンプレートローディングインターフェース を使用する.は様々なjsモジュールの出力をサポートします.AMD、CMD、Common JS は、GuntJSプラグインとして を構築することをサポートしています.フロントエンドテンプレートは、NodeJS実行 に共有できます.自動圧縮パッキン プリコンパイルツール:TmodJS
NodeJS
インストール
NodeJSバージョンは下記のデフォルト設定を追加しました.
ベース
String
''
テンプレートディレクトリを指定
extname
String
'.
テンプレートの拡張子を指定します.
encoding
String
'utf-8'
テンプレートのエンコーディングを指定します
ベース指定テンプレートディレクトリを設定することは、テンプレートのパスを短縮することができ、include文のレベルオーバーアクセスを回避することができます.例えば、
次世代javascriptテンプレートエンジン
目次
手っ取り早い
テンプレートを作成
type="text/html"のscriptタグを使ってテンプレートを保存します.
<h1>{{title}}</h1>
<ul>
{{each list as value i}}
<li> {{i + 1}} :{{value}}</li>
{{/each}}
</ul>
レンダリングテンプレートvar data = {
title: ' ',
list: [' ', ' ', ' ', ' ', ' ', ' ', ' ']
};
var html = template('test', data);
document.getElementById('content').innerHTML = html;
プレゼンテーションテンプレート文法
二つのバージョンのテンプレート文法が選択できます.
簡潔な文法
使うことを勧めて、文法は簡単で実用的で、読み書きに有利です.
{{if admin}}
{{include 'admin_content'}}
{{each list}}
{{$index}}. {{$value.user}}
{{/each}}
{{/if}}
文法とプレゼンテーションを表示げんせい文法
.
文法とプレゼンテーションを表示ダウンロード
template(id,data)
IDに基づいてテンプレートを描画します.内部はdocument.getElemenntById(id)によってテンプレートを検索します.
dataパラメータがない場合、レンダリング関数を返します.
template.com mpile(source,options)
レンダリング関数を返します.プレゼンテーション
template.render(source,options)
レンダリングの結果を返します.
template.helper(name,calback)
補助方法を追加します.
時間フォーマット:プレゼンテーション
template.co nfig(name,value)
エンジンのデフォルトの設定を変更します.
openTag
String
'{{}
論理文法開始フラグ
closeTag
String
「}」
論理文法終了フラグ
エスケープ
ボロア
true
出力HTML文字をエンコードしますか?
cache
ボロア
true
キャッシュを開くかどうか(Ooptionsのfilenameフィールドに依存)
compless
ボロア
false
HTMLの空き文字を圧縮しますか?
プリコンパイルを使う
ブラウザの制限を突破して、フロントエンドのテンプレートにバックエンドのテンプレートと同じ同期の「ファイル」ローディング能力を持たせることができます.
一、ファイルとディレクトリでテンプレートを組織する
template('tpl/home/main', data)
二、テンプレートサポートのサブテンプレートの導入{{include '../public/header'}}
プリコンパイルに基づいて:NodeJS
インストール
npm install art-template
使用var template = require('art-template');
var data = {list: ["aui", "test"]};
var html = template(__dirname + '/index/main', data);
設定NodeJSバージョンは下記のデフォルト設定を追加しました.
ベース
String
''
テンプレートディレクトリを指定
extname
String
'.
テンプレートの拡張子を指定します.
encoding
String
'utf-8'
テンプレートのエンコーディングを指定します
ベース指定テンプレートディレクトリを設定することは、テンプレートのパスを短縮することができ、include文のレベルオーバーアクセスを回避することができます.例えば、
template.config('base', __dirname);
var html = template('index/main', data)
NodeJS+Expressvar template = require('art-template');
template.config('base', '');
template.config('extname', '.html');
app.engine('.html', template.__express);
app.set('view engine', 'html');
//app.set('views', __dirname + '/views');
運行デモ:node demo/node-template-express.js
js原生文法をテンプレート文法として使うなら、それを使ってください. require('art-template/node/template-native.js')