微信小程序 Mustache語法詳細(xì)介紹
微信小程序 Mustache語法詳解
最近微信小程序非常火,對于前端開發(fā)的程序員是個(gè)利好的消息,這里主要記錄下微信小程序 Mustache語法。
小程序開發(fā)的wxml里,用到了Mustache語法。所以,非常有必要把Mustache研究下。
什么是Mustache?Mustache是一個(gè)logic-less(輕邏輯)模板解析引擎,它是為了使用戶界面與業(yè)務(wù)數(shù)據(jù)(內(nèi)容)分離而產(chǎn)生的,它可以生成特定格式的文檔,通常是標(biāo)準(zhǔn)的HTML文檔。比如小程序的wxml中的代碼:
{{userInfo.nickName}},這里的{{ }}就是Mustache的語法。
1、Mustache的模板語法很簡單,就那么幾個(gè):
{{keyName}}
{{{keyName}}}
{{#keyName}} {{/keyName}}
{{^keyName}} {{/keyName}}
{{.}}
{{!comments}}
{{>partials}}
1、{{keyName}}
⑴ 簡單的變量替換:{{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.
另外,你也可以用{{{ }}}代替{{&}}。
⑶ 若是對象,還能聲明其屬性
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}}
以#開始、以/結(jié)束表示區(qū)塊,它會(huì)根據(jù)當(dāng)前上下文中的鍵值來對區(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}}
該語法與{{#keyName}} {{/keyName}}類似,不同在于它是當(dāng)keyName值為null, undefined, false時(shí)才渲染輸出該區(qū)塊內(nèi)容。比如:
var data = { "name" : " weChat " }; var tpl = ‘{{^nothing}}沒找到 nothing 鍵名就會(huì)渲染這段{{/nothing}}'; var output = Mustache.render(tpl, data);
返回:沒找到 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}}
以>開始表示子模塊,當(dāng)結(jié)構(gòu)比較復(fù)雜時(shí),我們可以使用該語法將復(fù)雜的結(jié)構(gòu)拆分成幾個(gè)小的子模塊。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
利用 JavaScript 構(gòu)建命令行應(yīng)用
這篇文章主要介紹了利用 JavaScript 構(gòu)建命令行應(yīng)用,下面文章圍繞如何利用JavaScript 構(gòu)建命令行應(yīng)用的相關(guān)資料炸開詳細(xì)內(nèi)容,需要的朋友可以參考一下2021-11-11微信小程序中頂部導(dǎo)航欄的實(shí)現(xiàn)代碼
這篇文章主要介紹了微信小程序中頂部導(dǎo)航欄的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03JavaScript前端學(xué)算法題解LeetCode最大重復(fù)子字符串
這篇文章主要為大家介紹了JavaScript前端學(xué)算法題解LeetCode最大重復(fù)子字符串,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09wasm+js實(shí)現(xiàn)文件獲取md5示例詳解
這篇文章主要為大家介紹了wasm+js實(shí)現(xiàn)md5文件獲取示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08判斷Spartacus?SSR的Transfer?State是否正常工作技巧
這篇文章主要為大家介紹了判斷Spartacus?SSR的Transfer?State是否正常工作技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10