Mustache要点总结

小程序开发的wxml里,用到了Mustache语法。所以,非常有必要把Mustache研究下。

什么是Mustache?Mustache是一个logic-less(轻逻辑)模板解析引擎,它是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,通常是标准的HTML文档。比如小程序的wxml中的代码:

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

1、Mustache的模板语法很简单,就那么几个:

{{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的代码,如:<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

2、{{#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>

3、{{^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 键名就会渲染这段

4、{{.}}

{{.}}表示枚举,可以循环输出整个数组,例如:

var data = {

"product": ["Macbook ","iPhone ","iPod ","iPad "]

}

var tpl = ‘{{#product}} <p>{{.}}</p> {{/product}}‘;

var html = Mustache.render(tpl, data);

返回:<p>Macbook </p> <p>iPhone </p> <p>iPod </p> <p>iPad </p>

5、{{!  }}表示注释

6、{{>partials}}

以>开始表示子模块,当结构比较复杂时,我们可以使用该语法将复杂的结构拆分成几个小的子模块。

最后,插播一个广告,如果朋友觉得我讲得不错,欢迎加群讨论学习,共同提高: 小程序学习交流 171547625。我在群里可在线解答朋友在小程序开发过程中碰到的一些问题,还会在群里存放一些重要的代码、资料哦。

时间: 2024-10-09 11:59:54

Mustache要点总结的相关文章

微信小程序技术分析:Mustache语法要点总结

小程序开发的wxml里,用到了Mustache语法.所以,非常有必要把Mustache研究下. 什么是Mustache?Mustache是一个logic-less(轻逻辑)模板解析引擎,它是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,通常是标准的HTML文档.比如小程序的wxml中的代码: {{userInfo.nickName}},这里的{{ }}就是Mustache的语法. 1.Mustache的模板语法很简单,就那么几个: {{keyName}} {{{keyN

mustache.js使用基本(三)

作者:zccst 本节要点是子模块(partials)和分隔符(delimiter)等 1,子模块(partials) /* {{>partials}}以>开始表示子模块,如{{> address}}: 当结构比较复杂时,我们可以使用该语法将复杂的结构拆分成几个小的子模块,例如: */ var data = { "company": "Apple", "address": { "street": "

mustache.js基本使用(一)

作者:zccst 模板已是第二次接触,第一次使用模板记得是在十分系统里渲染页面时使用,当时已做到熟练使用,但实际上仍不知道原因. 再次学习模板已不是从0开始,所以还算顺手,但毕竟还只限于使用,今天继续学习,希望这次能够更深入一些. 这次学习的是mustache.js,他的理念是让模板尽量保持简单,甚至连基本的逻辑判断都不需要用. 本文基本要点: 1,基本用法 2, mustache.js基本使用(一),布布扣,bubuko.com

Yii 2 —— 基于Mustache的页面多语言解决方案

在Yii 2中,官方的页面多语言解决方案有两个: 方案1,使用Yii::t()函数,在页面中需要输出文字的地方,使用类似如下代码: <?= Yii::t('views/login', 'hello')?> 这样做的后果是页面上大量充斥着类似的代码,导致页面可读性很差,而且对于同一个页面来说,Yii::t()函数的第一个参数基本上都是一样的,看到这些重复代码,也是心塞.我曾经在项目中采用这种方式实现多语言,一个简单的登录页面都能写到心烦的要命. 方案2,为指定语言做一个专门的视图,假设你有个页面

javascript必须知道的知识要点(二)

该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 内建对象可划分为数据封装类对象.工具类对象.错误类对象,如下. 数据封装类对象: Number对象 String对象 Boolean对象 Array对象 Object Function 工具类对象: Math对象 Date对象 RegExp对象 错误类对象: Error对象  Number对象 JavaScript 只有一种数字类型.Number,包括

ZooKeeper架构设计及其应用要点

ZooKeeper是一个开源的分布式服务框架,它是Apache Hadoop项目的一个子项目,主要用来解决分布式应用场景中存在的一些问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置管理等,它支持Standalone模式和分布式模式,在分布式模式下,能够为分布式应用提供高性能和可靠地协调服务,而且使用ZooKeeper可以大大简化分布式协调服务的实现,为开发分布式应用极大地降低了成本. 总体架构 ZooKeeper分布式协调服务框架的总体架构,如图所示: ZooKeeper集群由一组

XHTML学习要点

目标 掌握XHTML语法,能正确书写出符合规则的文档. 要点 基本概念,与HTML有什么不一样 基本语法规则: XHTML 文档必须拥有一个根元素 标签名.属性名称必须小写 属性值必须加引号 属性不能简写 !DOCTYPE不可缺少 不允许空标签,<hr> , <br> 和 <img>应被替换为<hr />, <br /> 和 <img />. 除!DOCTYPE外,其他标签必须要被关闭. 非空标签必须使用结束标签. 空标签也必须被关闭

如何编写更棒的代码:11个核心要点

作为一个合格的程序员,有太多的理由促使你去编写干净利落且可读性强的代码.最重要的是因为你编写的代码,将来会有很多人一次次地阅读.当你有一天回过头来看自己的代码时,你就会明白编写优雅的代码是多么的重要.另外,如果别人来阅读你编写的代码,你是否想知道别人看到那些烂代码无比抓狂的感受.因此,花多一点的时间去编写优雅的代码,将来说不定会给你节省更多的时间. 那么,如何编写更棒的代码,下面是11条基本规则: 1.保持方法简短扼要 2.永远永远不要将同一个变量用于不同的目的 3.尽可能让变量和方法的名称能够

7月10日到7月15日技术积累要点

总结过去一周技术积累要点: Environment.NewLine(换行): string.Concat()的时间复杂度低于+=: 单元测试的规则: 创建日志的规则(LoggerFactory.CreateLog): IDE工具调试改值的技巧升级: Json序列化和反序列化使用升级: Mapper.CreateMap()的使用升级: string.Split()的使用升级: float.TryParse()的使用升级: float.Parse()的使用升级: WCF服务的使用开发流程: 调试技巧