mustache.js一个零依赖的模板系统实现

简介: mustache.js一个零依赖的模板系统实现

多种语言实现: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>


            </div>
目录
相关文章
|
1月前
|
Cloud Native Java API
Spring Boot 3.0 vs. 2.0
Spring Boot 3.0 带来革命性升级:全面支持 Java 17+ 与 Jakarta EE,引入原生编译、增强可观测性,推动云原生转型。相比 2.0,性能更强、启动更快、更现代。新项目应首选 3.0,老项目需逐步迁移,拥抱未来。
|
5月前
|
缓存 API Apache
OkHttp:协议流程、优势及核心使用指南
关于OkHttp的介绍就告一段落了。在掌握了这些核心概念和关键类之后,你便能够自如地运用OkHttp来处理各种网络请求。
|
数据采集 自然语言处理 数据处理
通义灵码在 PyCharm 中的强大助力(上)
本文介绍了阿里云通义灵码与PyCharm结合的强大功能,涵盖安装配置、快速生成代码、优化代码结构等方面,通过实际案例展示了其在Python项目开发中的应用,显著提升开发效率和代码质量。
1972 12
通义灵码在 PyCharm 中的强大助力(上)
|
应用服务中间件 网络安全 Apache
宝塔面板占用443端口怎么解决
宝塔面板占用443端口怎么解决
|
存储 数据挖掘 Linux
Linux命令split详解:大文件处理的得力助手
`split`命令是Linux用于将大文件分割成小文件的工具,常用于日志处理、备份。它支持按行数(-l)、字节数(-b)分割,并能自定义输出文件名(-a, -d)。例如,`split -b 10M largefile.txt smallfile_`会按10MB切割`largefile.txt`,生成`smallfile_`开头的文件。注意确保磁盘空间充足,避免文件名冲突,并备份原始文件。结合其他命令使用,能提高文件管理效率。
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
2414 2
|
搜索推荐 数据挖掘 UED
分享一些利用商品详情数据挖掘潜在需求的成功案例
本文介绍了四个成功利用商品详情数据挖掘潜在需求的案例:亚马逊通过个性化推荐系统提升销售额;小米通过精准挖掘用户需求优化智能硬件生态链;星巴克推出定制化饮品服务满足用户多样化口味;美妆品牌利用数据改进产品配方和设计,制定针对性营销策略。这些案例展示了数据挖掘在提升用户体验和商业价值方面的巨大潜力。
|
算法 机器人 数据挖掘
LeetCode题目54:螺旋矩阵【python4种算法实现】
LeetCode题目54:螺旋矩阵【python4种算法实现】
|
算法 C++ 开发者
【C/C++ 解惑 】std::weak_ptr 背后解决的问题
【C/C++ 解惑 】std::weak_ptr 背后解决的问题
285 0
|
存储 NoSQL Java
SpringBoot自定义实现类似jwt权限验证效果
SpringBoot自定义实现类似jwt权限验证效果
286 0