art-template 模板引擎 - 语法

art-template基本使用

1、npm install art-template
2、引入模板引擎const template = require("art-template")
3、告诉模板引擎要拼接的数据和模板在哪const html = template("模板路径",数据)

这是js文件

const template = require("art-template");
const path = require("path");
// 参数1:模板的路径,使用绝对路径
// 参数2:要在模板中显示的数据,对象类型
// 返回值是拼接好的字符串
const html = template(path.join(__dirname,"./views/index"),{
    data:{
        name:"张三"
    }
})

console.log(html); // 打印出的是html页面的字符串

art模板文件(格式与html文件完全相同,就是后缀使用art)

<div>{{data.name}}</div>

模板语法

  • art-template同时支持两种模板语法:标准语法原始语法
  • 标准语法可以让模板更容易阅读,原始语法具有强大的逻辑处理能力
    标准语法:{{ 数据 }}
    原始语法:<%=数据 %>
1、输出

将某项数据输出到模板中,标准语法和原始语法如下:

  • 标准语法:{{ 数据 }}
  • 原始语法:<%=数据 %>
<!--标准语法-->
<div>{{data.name}}</div>
<!--原始语法-->
<h1><%= data.name %></h1>
2、原文输出

如果数据中携带html标签,默认模板引擎是不会解析标签,会将其转义后输出。
如果需要解析的话,如下:

  • 标准语法:{{ @数据 }}
  • 原始语法:<%- 数据 %>
    js文件中:
const template = require("art-template");
const path = require("path");
// 参数1:模板的路径,使用绝对路径
// 参数2:要在模板中显示的数据,对象类型
// 返回值是拼接好的字符串
const html = template(path.join(__dirname,"./views/index"),{
    data:{
        name:"张三",
        content:`<h1>kk</h1>`
    }
})

console.log(html); // 打印出的是html页面的字符串

art文件中

<!--标准语法-->
<div>{{@ data.content}}</div>
<!--原始语法-->
<div><%- data.content%></div>
3、条件判断
  • 标准语法
    {{ if 条件 }} ...... {{ /if }}
    {{ if v1 }} ...... {{ else if v2 }} ...... {{ /if }}
  • 原始语法
<% if (value) { %> ... <% } %>
<% if (v1) { %> ... <% } else if (v2) { %> ... <% } %>
{{ if data.age < 20 }}
<div>我21</div>
{{ /if }}
4、循环
  • 标准语法
{{each target}}
    {{$index}} {{$value}}
{{/each}}
  • 原始语法
<% for(var i = 0; i < target.length; i++){ %>
    <%= i %> <%= target[i] %>
<% } %>

1、target支持ArrayObject的迭代,默认值为$data
2、$value$index可以自定义:{{ each target val key }}

5、子模板

  • 标准语法
{{ include "模板路径" }}
  • 原始语法
<%include("模板路径")%>

6、模板继承

跟Vue的插槽有些像

  • 原始语法
{{extend './layout.art'}}
{{block 'head'}} ... {{/block}}
  • 标准语法
<% extend('./layout.art') %>
<% block('head', function(){ %> ... <% }) %>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Art-template是一款高性能、轻量级的模板引擎,适用于Node.js和浏览器环境。它以简洁明了的语法,支持模板继承、条件判断、循环遍历等常见功能,同时还提供了强大的过滤器和自定义标签功能。 Art-template的使用逻辑如下: 1. 安装Art-template 可以通过npm安装Art-template,命令如下: ```npm install art-template --save``` 2. 引入Art-templateNode.js中,可以使用require语句引入Art-template: ```const template = require('art-template');``` 在浏览器中,可以使用script标签引入Art-template: ```<script src="path/to/art-template.js"></script>``` 3. 编写模板 Art-template使用{{}}包裹变量、表达式或语句。例如,以下是一个简单的模板: ``` <!DOCTYPE html> <html> <head> <title>{{title}}</title> </head> <body> <h1>{{title}}</h1> <p>{{content}}</p> </body> </html> ``` 4. 渲染模板 使用template方法可以将模板渲染成字符串。例如: ``` const template = require('art-template'); const data = { title: 'Art-template', content: 'A lightweight and powerful template engine' }; const html = template('path/to/template', data); console.log(html); ``` 在上面的例子中,我们将data对象传递给了模板,使用{{}}包裹的变量会被替换成data对象中的对应值,最终输出渲染后的HTML字符串。 5. 高级用法 除了基本的变量替换,Art-template还支持模板继承、条件判断、循环遍历等高级用法。例如,以下是一个使用if语句和each语句的模板: ``` {{if isAdmin}} <p>Welcome, admin</p> {{else}} <p>Welcome, user</p> {{/if}} <ul> {{each list}} <li>{{$index}}. {{$value}}</li> {{/each}} </ul> ``` 以上就是Art-template的使用逻辑,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值