art-template
4819 ワード
本質正則、置換 とくせい JavaScriptレンダーの限界に近いパフォーマンス デバッグは友好的です:文法、実行時のエラーログはテンプレートの行に正確です;テンプレートファイル上のブレークポイント をサポート圧縮出力ページのHTML、CSS、JSコード をサポート Express、Koa、Webpack をサポートは、テンプレート継承とサブテンプレート をサポートする. EJS、Underscore、LoDashテンプレート構文 に対応テンプレートコンパイル後のコードサポート厳格モードで を実行 JavaScript文とテンプレート構文のブレンド をサポートカスタムテンプレートの構文解析規則 をサポートするブラウザバージョン6 KBサイズ のみ
レンダー変数(Render Variables)
レンダーリスト(Render List)
文字列テンプレートのコンパイル
each(サイクル)
{{each json value key}}
<li>{{key}}------->{{value}}</li>
{{/each}}
</ul>
var data={
json:{
a:'A',
b:'B',
c:'C'
}
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
//原始文法
<h1><%=title%></h1>
<ul>
<%for(var i=0;i<arr.length;i++){%>
<li><%=arr[i]%>---><%=i%></li>
<%}%>
</ul>
var data={
title:'hello world',
arr:['A','B','C']
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
include
非エスケープ出力
定義子の変更(カスタムテンプレートタグ)
レンダー変数(Render Variables)
//
<h1>{{title}}</h1>
var data={
title:"hello osoLife"
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
//
<%=msg%>
var data={
msg:"hello world"
};
var htmlStr="";
htmlStr=template("tpl",data);
$("#box").html(htmlStr);
レンダーリスト(Render List)
<%for(var i=0;i<artList.length;i++){%>
:<%=artList[i].title%><br/>
<%}%>
var data={
artList:[
{title:" "},
{title:" "},
{title:" "},
{title:" "},
{title:" "}
]
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
文字列テンプレートのコンパイル
// JS
// :
var tplStr=""; //
var data={msg:"osoLife"};
var render=template.compile(tplStr); //
var htmlStr=render(data); // , , htmlStr
$("#box").html(htmlStr);
// :
var str=''+
''+
'- '+
''+
'
';
var data={
arr:['A','B','C']
};
var render=template.compile(str); //
var htmlStr=render(data);
$("#box").html(htmlStr);
each(サイクル)
//
// 1.
<h1>{{title}}</h1>
<ul>
{{each content value key}}
<li>{{value}}</li>
{{/each}}
</ul>
var data={
title:' ',
content:[' ',' ',' ']
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
// 2. JSON
div id="box">
<ul>{{each json value key}}
<li>{{key}}------->{{value}}</li>
{{/each}}
</ul>
var data={
json:{
a:'A',
b:'B',
c:'C'
}
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
//原始文法
<h1><%=title%></h1>
<ul>
<%for(var i=0;i<arr.length;i++){%>
<li><%=arr[i]%>---><%=i%></li>
<%}%>
</ul>
var data={
title:'hello world',
arr:['A','B','C']
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
include
//
<h1>{{title}}</h1>
{{include 'list'}}
<ul>
{{each json value key}}
<li>{{key}}------->{{value}}</li>
{{/each}}
</ul>
var data={
title:'hello world',
json:{
a:'A',
b:'B',
c:'C'
}
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
//
<h1><%=title%></h1>
<ul>
<%for(var i=0;i<arr.length;i++){%>
<li><%=arr[i]%>---><%=i%></li>
<%}%>
</ul>
<%include('list2')%>
<ol>
<%for(var key in json){%>
<li><%=key%>-----><%=json[key]%></li>
<%}%>
</ol>
非エスケープ出力
:
{{#msg}}
<p><%=#title%></p>
var data={
title:' ',
};
var htmlStr=template("tpl",data);
$("#box").html(htmlStr);
定義子の変更(カスタムテンプレートタグ)