doT.js:一个Node.js和浏览器环境下快速简洁的javascript模板引擎

简介: doT.js:一个Node.js和浏览器环境下快速简洁的javascript模板引擎

简介:

The fastest + concise javascript template engine for Node.js and browsers.

译文:

Node.js和浏览器环境下最快+简洁的javascript模板引擎

文档:http://olado.github.io/doT/index.html

下载

# 开发版 5.1K
wget https://raw.githubusercontent.com/olado/doT/master/doT.js
# 压缩版 3.3K
wget https://raw.githubusercontent.com/olado/doT/master/doT.min.js

Node.js环境使用

npm install dot

浏览器使用

<script type="text/javascript" src="doT.js"></script>

基本模板语法

{{ }}   for evaluation
{{= }}  for interpolation
{{! }}  for interpolation with encoding
{{# }}  for compile-time evaluation/includes and partials
{{## #}}    for compile-time defines
{{? }}  for conditionals
{{~ }}  for array iteration

基本使用

<!-- 引入dot.js -->
<script src="doT.js" type="text/javascript"></script>
<!-- 定义模板 -->
<script id="content-tmpl" type="text/x-dot-template">
  <span>{{=it.name}}</span>
</script>
<!-- html节点 -->
<div id="content"></div>
<!-- 执行模板渲染 -->
<script type="text/javascript">
  var data = {
    name: "Tom",
  };
  var template = doT.template(document.getElementById("content-tmpl").text);
  // 显示渲染结果
  document.getElementById("content").innerHTML = template(data);
</script>

更多使用示例

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script id="content-tmpl" type="text/x-dot-template">
      <h2>赋值</h2>
      <span>{{=it.name}}</span>
      <h2>循环map</h2>
      {{for(var key in it.attrs) { }}
        <span>{{=key}}: {{=it.attrs[key]}}</span>
      {{ } }}
      <h2>数组</h2>
      {{~it.pets:value:index}}
        <span>{{=index}}: {{=value}}</span>
      {{~}}
      <h2>条件</h2>
      {{? it.sex == 0}}
      <span>女</span>
      {{??}}
      <span>男</span>
      {{?}}
    </script>
    <script src="doT.js" type="text/javascript"></script>
  </head>
  <body>
    <div id="content"></div>
  </body>
  <script type="text/javascript">
    var data = {
      name: "Tom",
      sex: 0,
      pets: ["dog", "cat", "pig"],
      attrs: {
        age: 23,
        phone: 123456,
      },
    };
    var template = doT.template(document.getElementById("content-tmpl").text);
    document.getElementById("content").innerHTML = template(data);
  </script>
</html>

参考资料

http://www.jq22.com/jquery-info8648

相关文章
|
3天前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
9 0
|
23天前
|
JavaScript 前端开发 UED
JS:如何获取浏览器窗口尺寸?
JS:如何获取浏览器窗口尺寸?
35 1
|
3月前
|
JavaScript 前端开发 算法
Node.js中的process.nextTick与浏览器环境中的nextTick有何不同?
Node.js中的process.nextTick与浏览器环境中的nextTick有何不同?
|
3月前
|
JavaScript 前端开发 小程序
js 实现浏览器下载视频2种方法
js 实现浏览器下载视频2种方法
422 0
|
4月前
|
Web App开发 JavaScript
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
302 0
|
7天前
|
JavaScript 前端开发
JavaScript如何获得浏览器的宽高
JavaScript如何获得浏览器的宽高
|
10天前
|
JavaScript 前端开发 安全
JavaScript DOM 操作:解释一下浏览器的同源策略。
**同源策略**是浏览器安全基石,它阻止脚本跨不同协议、域名或端口访问资源,防止恶意行为。例如,HTTP页面无法直接用JS获取HTTPS页面内容。**CORS**允许跨域请求,但需服务器配合设置,通过`document.domain`属性可配置,但仍受限于服务器配置。
14 4
|
17天前
|
JavaScript
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
|
21天前
|
存储 JavaScript 前端开发
在浏览器中存储数组和对象(js的问题)
在浏览器中存储数组和对象(js的问题)
|
1月前
|
JavaScript 前端开发
js阻止浏览器默认事件和防止事件传播事件
js阻止浏览器默认事件和防止事件传播事件
21 3