微信小程序 Mustache語(yǔ)法詳細(xì)介紹
微信小程序 Mustache語(yǔ)法詳解
最近微信小程序非常火,對(duì)于前端開(kāi)發(fā)的程序員是個(gè)利好的消息,這里主要記錄下微信小程序 Mustache語(yǔ)法。
小程序開(kāi)發(fā)的wxml里,用到了Mustache語(yǔ)法。所以,非常有必要把Mustache研究下。
什么是Mustache?Mustache是一個(gè)logic-less(輕邏輯)模板解析引擎,它是為了使用戶界面與業(yè)務(wù)數(shù)據(jù)(內(nèi)容)分離而產(chǎn)生的,它可以生成特定格式的文檔,通常是標(biāo)準(zhǔn)的HTML文檔。比如小程序的wxml中的代碼:
{{userInfo.nickName}},這里的{{ }}就是Mustache的語(yǔ)法。
1、Mustache的模板語(yǔ)法很簡(jiǎn)單,就那么幾個(gè):
{{keyName}}
{{{keyName}}}
{{#keyName}} {{/keyName}}
{{^keyName}} {{/keyName}}
{{.}}
{{!comments}}
{{>partials}}
1、{{keyName}}
⑴ 簡(jiǎn)單的變量替換:{{name}}
var data = { "name": "weChat" };
Mustache.render("{{name}} is excellent.",data);
返回 weChat is excellent.
⑵ 變量含有html的代碼,如:
、等而不想轉(zhuǎn)義,可以在用{{&name}}
var data = {
"name" : "
weChat
"
};
var output = Mustache.render("{{&name}} is excellent.", data);
console.log(output);
返回:
weChat
is excellent.
去掉"&"的返回是轉(zhuǎn)義為:
weChat
is excellent.
另外,你也可以用{{{ }}}代替{{&}}。
⑶ 若是對(duì)象,還能聲明其屬性
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
2、{{#keyName}} {{/keyName}}
以#開(kāi)始、以/結(jié)束表示區(qū)塊,它會(huì)根據(jù)當(dāng)前上下文中的鍵值來(lái)對(duì)區(qū)塊進(jìn)行一次或多次渲染。它的功能很強(qiáng)大,有類似if、foreach的功能。
var data = {
"stooges" : [ {
"name" : "Moe"
}, {
"name" : "Larry"
}, {
"name" : "Curly"
} ]
};
var output = Mustache.render("{{#stooges}}{{name}}{{/stooges}}",
data);
console.log(output);
返回:Moe
Larry
Curly
3、{{^keyName}} {{/keyName}}
該語(yǔ)法與{{#keyName}} {{/keyName}}類似,不同在于它是當(dāng)keyName值為null, undefined, false時(shí)才渲染輸出該區(qū)塊內(nèi)容。比如:
var data = {
"name" : "
weChat
"
};
var tpl = ‘{{^nothing}}沒(méi)找到 nothing 鍵名就會(huì)渲染這段{{/nothing}}';
var output = Mustache.render(tpl, data);
返回:沒(méi)找到 nothing 鍵名就會(huì)渲染這段
4、{{.}}
{{.}}表示枚舉,可以循環(huán)輸出整個(gè)數(shù)組,例如:
var data = {
"product": ["Macbook ","iPhone ","iPod ","iPad "]
}
var tpl = '{{#product}}
{{.}}
{{/product}}';
var html = Mustache.render(tpl, data);
返回:
Macbook
iPhone
iPod
iPad
5、{{! }}表示注釋
6、{{>partials}}
以>開(kāi)始表示子模塊,當(dāng)結(jié)構(gòu)比較復(fù)雜時(shí),我們可以使用該語(yǔ)法將復(fù)雜的結(jié)構(gòu)拆分成幾個(gè)小的子模塊。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
微信小程序教程之本地圖片上傳(leancloud)實(shí)例詳解
這篇文章主要介紹了微信小程序教程之本地圖片上傳(leancloud)實(shí)例詳解的相關(guān)資料,這里舉例說(shuō)明該如何實(shí)現(xiàn)和實(shí)例代碼,文章一一表述,需要的朋友可以參考下2016-11-11
微信小程序技巧之show內(nèi)容展示,上傳文件編碼問(wèn)題
這篇文章主要介紹了微信小程序技巧之show內(nèi)容展示,上傳文件編碼問(wèn)題,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
Openlayer?add?mark及添加hover效果實(shí)例詳解
這篇文章主要為大家介紹了Openlayer?add?mark及添加hover效果實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
詳解Three.js?場(chǎng)景中如何徹底刪除模型和性能優(yōu)化
這篇文章主要為大家介紹了詳解Three.js?場(chǎng)景中如何徹底刪除模型和性能優(yōu)化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
TypeScript 內(nèi)置高級(jí)類型編程示例
這篇文章主要為大家介紹了TypeScript 內(nèi)置高級(jí)類型編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
總結(jié)JavaScript中BigIn函數(shù)常見(jiàn)的屬性
本文基于JavaScript基礎(chǔ),介紹了 BigInt 函數(shù),常見(jiàn)的屬性,通過(guò) BigInt 函數(shù)進(jìn)行數(shù)字運(yùn)算符的比較。布爾運(yùn)算等等,通過(guò)按案例的分析進(jìn)行詳細(xì)的講解,需要的朋友可以參考一下2021-10-10
13個(gè)JavaScript 一行程序,讓你看起來(lái)就是個(gè)專家
JavaScript 可以做很多好玩的事, 從復(fù)雜的框架到處理API,有太多的東西需要學(xué)習(xí)。但是,它也能讓我們只用一行就能做一些了不起的事情。今天的文章小編就為大家介紹13 個(gè)JavaScript 行程序,需要的朋友可以參考下2021-08-08

