基础知识 - art-template

模版

同时支持支持标准语法和原始语法,标准语法支持基本模板语法以及基本 JavaScript 表达式;原始语法支持任意 JavaScript 语句,这和 EJS 一样

1
2
3
4
5
6
7
8
9
10
11

<!-- -------------------------------- 标准语法 --------------------------------- -->
{{if user}}
<h2>{{user.name}}</h2>
{{/if}}


<!-- -------------------------------- 原始语法 --------------------------------- -->
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>

语法

变量输出

标准语法
1
2
3
4
5
6
{{value}}
{{data.key}}
{{data['key']}}
{{a ? b : c}}
{{a || b}}
{{a + b}}
原始语法
1
2
3
4
5
6
<%= value %>
<%= data.key %>
<%= data['key'] %>
<%= a ? b : c %>
<%= a || b %>
<%= a + b %>

原生输出

标准语法
1
{{@ value }}
原始语法
1
<%- value %>

条件

标准语法
1
2
{{if value}} ... {{/if}}
{{if v1}} ... {{else if v2}} ... {{/if}}
原始语法
1
2
<% if (value) { %> ... <% } %>
<% if (v1) { %> ... <% } else if (v2) { %> ... <% } %>

循环

标准语法
1
2
3
{{each target}}
{{$index}} {{$value}}
{{/each}}
原始语法
1
2
3
<% for(var i = 0; i < target.length; i++){ %>
<%= i %> <%= target[i] %>
<% } %>

变量

标准语法
1
{{set temp = data.sub.content}}
原始语法
1
<% var temp = data.sub.content; %>

模版继承

标准语法
1
2
3
4
{{extend './layout.art'}}

<!-- 这个会注入到layout.art里面 类似vue里的slot name为head -->
{{block 'head'}} ... {{/block}}
原始语法
1
2
<% extend('./layout.art') %>
<% block('head', function(){ %> ... <% }) %>

子模版

标准语法
1
2
{{include './header.art'}}
{{include './header.art' data}}
原始语法
1
2
<% include('./header.art') %>
<% include('./header.art', data) %>

过滤器

标准语法
1
{{date | timestamp | dateFormat 'yyyy-MM-dd hh:mm:ss'}}
原始语法
1
<%= $imports.dateFormat($imports.timestamp(date), 'yyyy-MM-dd hh:mm:ss') %>

基础知识 - art-template
https://wanmeishijie.xyz/notes/art-template/基础/
作者
发布于
2023年12月16日
许可协议