handlebar介绍Handlebar是一个javascript引擎模板,通过分离视图和数据来快速构建网页模板。使用handlebar模块可以在加载的时候进行预编译,而不是等客户端执行完某段代码再进行编译。这确保了模块加载和运行的速度。注意:{{{}}}-->不会进行编码转换,而是直接替换,即这里写html标签,标签也会输出。{{}}-->会做html编码转换。Handlerbar是层次转换的示例:{{#post}}{{#ifauthor.length}}
{{title}}
{{#eachauthor}}- {{../title}}的作者是{{name}}
{{/each}}
{{/if}}{{/post}}handlebar中的两个重要文件:布局和partialslayoutslayout.hb是布局文件,所有的跳转页面都会通过这个文件渲染页面内容。在此文件中,您可以编写将被所有页面引用的内容。例如:
添加{{#block"body"}}{{/block}}等。部分使用存储公共引用。比如导航头部,底部。动态页面文件中,引用方式为{{>head.hb}}(head.hb为partials中对应的文件名)helper主要作用:在页面中预设一个位置,并在该位置动态渲染代码。我们引用的helper内置了if、each、unless、with等,如果要实现复杂的判断逻辑,需要自己定义helper。但是过多的复杂逻辑模糊了模板的重点,违背了分离数据和性能的初衷。模板-----应该专注于数据绑定数据层---应该专注于做逻辑预处理并将结果返回给模板。注意:模板引擎会缓存编译后的模板,只有当模板发生变化时才会重新编译并重新缓存。app.set('查看缓存',true);