Lauiuiテンプレートエンジンの使い方

angryTom
リリース: 2019-07-31 10:46:52
オリジナル
5625 人が閲覧しました

Lauiuiテンプレートエンジンの使い方

layui について詳しく知りたい場合は、次をクリックしてください: layui チュートリアル

## Laytpl は、文字解析において優れたパフォーマンスを備えた JavaScript テンプレート エンジンですが、例外のデバッグに欠点があります。従来のフロントエンドテンプレートエンジンの普及が進んでいないため、将来的にはlaytplが書き直される可能性もありますが、現在の方向性はまだ決まっておらず、layuiが比較的安定してから実装される予定です。

クイックユース

一般的な文字スプライシングとは異なり、laytpl のテンプレートはデータから分離でき、論理的な処理はビューに集中されます。レイヤーを使用して、特に多数のテンプレートをレンダリングする場合に、コードの保守性を向上させます。

layui.use('laytpl', function(){
     var laytpl = layui.laytpl;//直接解析字符
     laytpl('{{ d.name }}是一位公猿').render({
          name: '贤心'
          }, function(string){
              console.log(string); //贤心是一位公猿
        });
      //你也可以采用下述同步写法,将 render 方法的回调函数剔除,可直接返回渲染好的字符
      var string =  laytpl('{{ d.name }}是一位公猿').render({
          name: '贤心'
       });
     console.log(string);  
     //贤心是一位公猿
     //如果模板较大,你也可以采用数据的写法,这样会比较直观一些
     laytpl([
         '{{ d.name }}是一位公猿',
         '其它字符 {{ d.content }}  其它字符'
         ].join(''))
      });
ログイン後にコピー

テンプレートをページまたは他の場所に保存することもできます。

//第一步:编写模版。你可以使用一个script标签存放模板,如:
<script id="demo" type="text/html">
    <h3>{{ d.title }}</h3>
    <ul>{{#  layui.each(d.list, function(index, item){ }}
       <li>
          <span>{{ item.modname }}</span>
          <span>{{ item.alias }}:</span>
          <span>{{ item.site || &#39;&#39; }}</span>
        </li>
        {{#  }); }}{{#  if(d.list.length === 0){ }}无数据{{#  } }}</ul>
</script>
//第二步:建立视图。用于呈现渲染结果。
<div id="view"></div>
//第三步:渲染模版
var data = { //数据"title":"Layui常用模块","list":[{"modname":"弹层","alias":"layer","site":"layer.layui.com"},{"modname":"表单","alias":"form"}]}
var getTpl = demo.innerHTML,
view = document.getElementById(&#39;view&#39;);
laytpl(getTpl).render(data, function(html){view.innerHTML = html;});
ログイン後にコピー

テンプレート構文

構文説明例{{ d.field }}出力エスケープしない通常のフィールド html
<div>{{ d.content }}</div>
ログイン後にコピー
{{= d.field }}エスケープしない通常のフィールドを出力します html
<h2>{{= d.title }}</h2>
ログイン後にコピー
{{# JavaScript 式}}JS ステートメント。一般的にはロジック処理に使用されます。区切り文字で始まり、その後に # 記号が続きます。
{{#
var fn = function(){return &#39;2017-08-18&#39;;
};
}}
{{#  if(true){ }}
开始日期:{{ fn() }}
{{#  } 
else { }}
已截止{{#  } }}
ログイン後にコピー
# ではなく、{{ fn() }} です。 ##{{! template !}}

注: 関数を出力する場合の正しい書き方は、{{# fn() }}
指定されたテンプレート領域をフィルタリングします。つまり、この領域のテンプレートは解析されません。注:layui 2.1.6 では、新しい
<div> {{! 这里面的模板不会被解析  !}}</div>
ログイン後にコピー
## 区切り文字

が追加されています。テンプレートのデフォルトの {{ }} 区切り文字が他のテンプレート (通常はサーバー側のテンプレート) と競合する場合は、区切り文字を再定義することもできます:

laytpl.config({
  open: &#39;<%&#39;,
  close: &#39;%>&#39;
});
//分割符将必须采用上述定义的
laytpl([
  &#39;<%# var type = "公"; %>&#39; //JS 表达式,
  &#39;<% d.name %>是一位<% type %>猿。&#39;
  ].join(&#39;&#39;)).render({
  name: &#39;贤心&#39;
}, function(string){
  console.log(string); //贤心是一位公猿
});
ログイン後にコピー

結論

Laytpl は、layim、table など、layui の多くのモジュールで使用されます。従来のフロントエンド テンプレート エンジンの人気は低くなりましたが、laytpl は依然として一定の役割を果たすことができるので、ぜひ試してみてください。

以上がLauiuiテンプレートエンジンの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!