20 行 JavaScript 模板引擎实例详解
概述
在前端开发中,模板引擎是一项必不可少的技术。本文将详细讲解使用 JavaScript 实现一个只有 20 行的模板引擎的过程。
实现
下面是 20 行 JavaScript 模板引擎的核心代码:
function template(tpl, data) {
return tpl.replace(/\{\{(\w+)\}\}/g, function(_, key) {
return data[key];
});
}
代码分为两个部分:
-
tpl.replace(/\{\{(\w+)\}\}/g
分别匹配 { { } } 内的变量名,其中\w+
代表一个或多个字母数字下划线字符,g
则代表全局匹配。 -
使用 replace 后面的函数返回替换值,在 data 对象中查找这个变量名,最终替换文本。
示例
示例 1 简单字符串模板
const tpl = 'Hello, {{name}}!';
const data = { name: 'John' };
console.log(template(tpl, data)); // Hello, John!
在上面的示例中,我们定义了一个简单的字符串模板,使用 {{name}}
子串作为占位符,然后使用名为 data
的对象按照 key-value 映射的方式替换占位符,最终生成一个字符串。
示例 2 复杂模板
const tpl = `<!doctype html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<h1>{{title}}</h1>
<ul>
{{#each items}}
<li>{{this}}</li>
{{/each}}
</ul>
</body>
</html>`;
const data = {
title: 'My List',
items: ['one', 'two', 'three']
};
console.log(template(tpl, data));
在上述示例中,我们定义了一个更复杂的模板,包括一个 {{title}}
占位符和一个用于遍历列表的 {{#each}}
块。在数据源 data
中定义 title
和 items
字段。当我们对模板进行解析时,模板引擎会基于数据源中的值动态生成页面内容。
总结
通过本文的介绍,我们可以了解到 JavaScript 实现一个简单的模板引擎并不是难事,而且可以帮助我们在前端开发中更加方便地处理动态数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:只有 20 行的 JavaScript 模板引擎实例详解 - Python技术站