搜尋
首頁微信小程式小程式開發微信小程式開發之Mustache語法的程式碼實例分享

微信小程式中wxml裡Mustache語法不可忽視,讓我這個以前沒搞過前端的iOS的一臉懵逼。 。 。上網查了查。 。 。記錄一下。

什麼是Mustache?

Mustache是​​一個logic-less(輕邏輯)範本解析引擎,它是為了使用戶介面與業務資料(內容)分離而產生的,它可以生成特定格式的文檔,通常是標準的HTML文檔。當同一個範本中想要呼叫不同的函數來渲染畫面,在已經自訂好了的前提下,可以在渲染頁面時對傳入的參數進行手動判斷。

例如小程式的wxml中的程式碼:

// 这里的{{ }}就是Mustache的语法。
<text>{{userInfo.nickName}}</text>,

Mustache的範本語法很簡單,就那麼幾個:

 {{keyName}}
  {{{keyName}}}
  {{#keyName}} {{/keyName}}
  {{^keyName}} {{/keyName}}
  {{.}}
  {{!comments}}
  {{>partials}}

{{keyName}} 幾種情況

簡單的變數替換:{{name}}

var data = { "name": "weChat" };
  Mustache.render("{{name}} is excellent.",data);

  返回 weChat is excellent.

變數含有html的程式碼,

如:<br>、<tr>等而不想转义,可以在用{{&name}}
var data = {
          "name" : "<br>weChat<br>"
      };
var output = Mustache.render("{{&name}} is excellent.", data);
console.log(output);

返回:<br>weChat<br> is excellent.
去掉"&"的返回是转义为:<br>weChat<br> is excellent.
另外,你也可以用{{{ }}}代替{{&}}。

若是對象,還能​​宣告其屬性

var data = {
           "name" : {
           "first" : "Chen",
           "last" : "Jackson"
           },
           "age" : 18
      };
var output = Mustache.render(
        "name:{{name.first}} {{name.last}},age:{{age}}", data);
console.log(output);
返回:name:Chen Jackson,age:18

{{#keyName}} {{/keyName}} 以#開始、以/結束表示區塊,它會根據當前上下文中的鍵值來對區塊進行一次或多次渲染。它的功能很強大,裡面還可以加入類似if、foreach的功能。

var data = {
           "stooges" : [ {
               "name" : "Moe"
           }, {
               "name" : "Larry"
           }, {
               "name" : "Curly"
       };
var output = Mustache.render("{{#stooges}}<b>{{name}}</b>{{/stooges}}",
              data);
console.log(output);
返回:<b>Moe</b>
   <b>Larry</b>
   <b>Curly</b>

{{^keyName}} {{/keyName}} 例外輸出

#該語法與{{#keyName}} {{/keyName} }類似,不同在於它是當keyName值為null, undefined, false時才渲染輸出該區塊內容。例如:

var data = {
             "name" : "<br>weChat<br>"
         };
    var tpl = ‘{{^nothing}}没找到 nothing 键名就会渲染这段{{/nothing}}’;
    var output = Mustache.render(tpl, data);
返回:没找到 nothing 键名就会渲染这段

{{.}}表示枚舉,用於循環輸出整個數組,例如:

var data = {
    "product": ["Macbook ","iPhone ","iPod ","iPad "]
    }
    var tpl = &#39;{{#product}} <p>{{.}}</p> {{/product}}&#39;;
    var html = Mustache.render(tpl, data);
返回:<p>Macbook </p> <p>iPhone </p> <p>iPod </p> <p>iPad </p>

{{! }}表示註釋

 {{!这里是注释}}
{{>partials}}

以>開始表示子模組,當結構比較複雜時,我們可以使用該語法將複雜的結構拆分成幾個小的子模組。

 var tpl = "<h1 id="namme">{{namme}}</h1> <ul>{{>msg}}</ul>" 
   var partials = {msg: "{{#msg}}<li>{{sex}}</li><li>{{age}}</li><li>{{hobit}}</li>{{/msg} 
   var html = Mustache.render(tpl, data, partials); 
   //输出: 
   <h1 id="xiaohua">xiaohua</h1>
{{{data}}}

{{data}} 輸出會將等特殊字元轉譯,如果想要保持內容原樣輸出可以使用{{{}}},

 var tpl = &#39;{{#msg}} <p>{{{age}}}</p> {{/msg}}&#39;
 //输出:
 <p>22</p>

小程式這麼多大致就能用了,如果發現什麼其他的再更新。 。 。

#

以上是微信小程式開發之Mustache語法的程式碼實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器