近期微信的小程序感觉挺火的,我觉得其实就是一个h5+css+js,不过在此基础上又加入了一些更适合微信的一些改动而已。
本篇主要学习下mustache(嘛思太屎)语法。
一、定义及作用
mustache呢是一个模板解析引擎,轻逻辑的,作用是为了显示的页面(视图界面)和业务数据(业务内容)分离。
二、语法及详解
var data = {" name ":" hello"};
1、普通的{{name}},指如果存在就输出,不存在则用长度为0的字符表示,也就相当于空滴。
(1) {{name}}
这个是最简单的变量替换。输出hello。
(2) {{&name}} ,也可以用{{{name}}}代替
加上&,表示不想转义,原样输出,比如html标签,大于小于号等等。
(3) {{name.xx}}
如果要输出对象的话,其属性可以直接.就好。
2、{{#name}}{{/name}}
#开始,/结束,表示区块。类似于if和foreach的功能
如果name为布尔值,值为true时,区块内的内容才会被渲染;
如果name为非空集合,区域内的内容会被循环迭代渲染。
如果name为非布尔类型和非集合类型:区域内的内容被渲染,上下文为当前key的值
如果name不存在或值为false或为空集合时输出额外信息的方法:{{^key}} ...{{/key}}
如果name如果数组或集合中的元素没有显式的key而只是一个简单的值,使用{{.}}输出此值(模板中的"."表示数据的当前上下文环境)
Mustache 并不支持输出数组的索引(index)值
3、{{^name}} ...{{/name}}
这个和前面的#正好相反哦,name为null、undefind、false的时候,才会输出区块内的信息。
4、{{!comments}}
注释、支持换行输入
5、{{> file}}
Partials 导入别的文件。
>表示开始子模块,当结构比较复杂时,可以用它将复杂的结构拆分成多个子模块。
6、Lambdas
表达式
7、{{.}}
中间一个点,表示枚举,可以循环出整个数组,适用于木有key值只有value的数组。