多种语言实现:http://mustache.github.io/
js版本文档:https://github.com/janl/mustache.js
简介:
mustache.js is a zero-dependency implementation of the mustache template system in JavaScript.
Node 环境使用
安装
$ npm install mustache --save
基本语法
变量: {{name}} 列表:{{#list}}{{.}}{{/list}} 对象:{{obj.name}} - {{obj.age}}
代码示例
const Mustache = require("Mustache"); var data = { name: "Tom", age: 23, }; var template = "my name is {{name}}, and {{age}} years old"; var result = Mustache.render(template, data); console.log(result); // my name is Tom, and 23 years old
浏览器中使用
最终效果是把id=template 的内容渲染后替换到id=target
<script src="https://unpkg.com/mustache@latest"></script> <div id="target">Loading...</div> <script id="template" type="x-tmpl-mustache"> hello {{name}} </script> <script> (function () { var template = document.getElementById("template").innerHTML; var rendered = Mustache.render(template, { name: "Tom" }); document.getElementById("target").innerHTML = rendered; })(); </script>
异步加载模板
模板文件 template.html
hello {{name}}
异步渲染
<script src="https://unpkg.com/mustache@latest"></script> <div id="target">Loading...</div> <script> (function () { fetch("./template.html") .then((response) => response.text()) .then((template) => { var rendered = Mustache.render(template, { name: "Tom" }); document.getElementById("target").innerHTML = rendered; }); })(); </script>