art-template

2024-06-02 14:44
文章标签 template art

本文主要是介绍art-template,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 简介
      • 安装
      • 基本使用
        • 变量
        • 语法
        • 条件判断
        • 循环
        • 继承
        • 过滤器
      • express-art-template
        • express的engine()方法
        • express的set()方法
        • express的render()方法

简介

art-template是一个简约,快速的模板引擎,可以运行在浏览器端和Node.js环境中。art-template灵活性高,支持包括逻辑语句、条件判断、循环等常用的模板语法。中文官网首页为http://aui.github.io/art-template/zh-cn/index.html

安装

打开命令行终端,进入你的项目所在的目录

npm install art-template --save

安装完成后,可以在项目的代码中使用类似 require 或 import 的方式引入 art-template 模块

const template = require('art-template');

基本使用

告诉模板引擎要拼接的数据和模板在哪

变量

$data 传入模板的数据
$imports 外部导入的变量以及全局变量
print 字符串输出函数
include 子模板载入函数
extend 模板继承模板导入函数
block 模板块声明函数

const html = template(‘模板路径’, 数据);

使用模板语法告诉模板引擎,模板与数据应该如何进行拼接

/ 导入模板引擎模块
const template = require('art-template');
// 将特定模板与特定数据进行拼接//模板路径    导入的数据
const html = template('./views/index.html',{
data: {
name: '111',
age: 22
}
});//index.html 里的数据渲染
<div>
<span>{{data.name}}</span>
<span>{{data.age}}</span>
</div>
语法

标准语法:{{ 数据 }}
原始语法:<%=数据 %>
不会直接输出,如果数据中含有标签,它不会解析标签,会将其转义后输出
而{{@ 数据 }}和<%-数据 %>,如果数据中含有标签,它不会解析标签,会将其转义后输出

条件判断
//标准语法 
{{if 条件}} ... {{/if}}
{{if a1}} ... {{else if a2}} ... {{/if}}
// 原始语法
<% if (value) { %> ... <% } %>
<% if (a1) { %> ... <% } else if (a2) { %> ... <% } %>

进行语法使用时,记得有开就有闭,其他跟正常的if流程差不多

循环

{{each 变量名}}…{{/each}}

//标准语法 
{{each target}}//index(内置对象) 序号 从0开始
{{$index}}//value(内置对象)  值
{{$value}}{{/each}}
//原始语法
<% for(var i = 0; i < item.length; i++){ %>//i 序号 从0开始
<%= i %> // 值<%= item[i] %><% } %>

each 后面跟的是遍历的数据的变量名,需要跟传入进来的值的名一致

继承

使用模板继承可以将网站HTML骨架抽离到单独的文件中,其他页面模板可以继承骨架文件

// 标准语法
{{extend './layout.art'}}
{{block 'head'}} ... {{/block}}
/// 原始语法
<% extend('./layout.art') %>
<% block('head', function(){ %> ... <% }) %>
过滤器

注册

template.defaults.imports.dateFormat = function(date, format){/*[code..]*/};template.defaults.imports.timestamp = function(value){return value * 1000};
//标准语法
{{date | timestamp | dateFormat 'yyyy-MM-dd hh:mm:ss'}}
//原始语法
<%= $imports.dateFormat($imports.timestamp(date), 'yyyy-MM-dd hh:mm:ss') %>

express-art-template

为了使art-template模板引擎能够更好的和Express框架配合,模板引擎官方在原art-template模板引擎的基础上封装了express-art-template

npm install art-template express-art-template

在一个项目中可以使用多个模板引擎

express的engine()方法

当渲染后缀为art的模板时使用express-art-template,第一个参数是模板的后缀,第二个参数是使用的什么模板

express的set()方法

1.设置模板存放目录,第一个参数是设置存放模板目录的文件夹, 第二个参数是存放模板的绝对路径
2.设置默认的模板后缀,设置模板时,如果没有写模板后缀就使用当前设置的模板后缀, 第一个参数是 默认模板的配置项,第二个参数是后缀的名字

express的render()方法

渲染模板(在该方法的内部会自动拼接后缀、模板与数据的拼接、把结果相应给客户端)

app.engine('art',require('express-art-template'))
app.set('view engine','art');
// 创建一个路由
app.get('/',(req,res) => {res.render('index',{//    模板要展示的数据msg: 'message'})
})

这篇关于art-template的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024265

相关文章

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

框架template初识

框架初识 框架就是一个别人帮我们搭好的舞台,造好了很多现成的工具供我们使用,让开发过程更快速、简洁。 Gin框架介绍 Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 Gin是一个用Go语言编写的web框架。它是一个类似于martini 但拥有更好性能的API框架, 由于使用了 httprouter,速度提高了近40倍。 第一个Gin示例 package mai

c++通用模板类(template class)定义实现详细介绍

有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int { public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x>y)?x:y; } int min( ) { return (x&... 有时,有两个或多个类,其功能是相同的,仅仅是数

发现个有趣的东西:Tweetable Mathematical Art(用三个140字符以内的函数生成一个1024尺寸的图片)

发现 我是在看《构建之法》这本书时,看到作者提到这个: 好厉害!用三段140字符以内的代码生成一张1024×1024的图片_IT新闻_博客园 这是2014年一个人在 Code Golf Stack Exchange (a question and answer site for programming puzzle enthusiasts and code golfers) 发起的编程挑战:

【硬刚ES】ES基础(十三)Dynamic Template和Index Template

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的ES部分补充。

C++ Template(一)

引言 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。 函数模板 在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下: void swap(int&a , int& b) {int temp = a;a = b;b

[置顶]C++泛型编程:template模板

泛型编程就是以独立于任何特定类型的方式编写代码,而模板是C++泛型编程的基础. 所谓template,是针对“一个或多个尚未明确的类型”所编写的函数或类. 使用template时,可以显示的或隐示的将类型当作参数来传递. 下面是一个典型的例子,传回两数中的较大者: template<class T>inline const T& MAX(const T& a,const T& b)

【HDU】5023 A Corrupt Mayor's Performance Art 线段树

传送门:【HDU】5023 A Corrupt Mayor's Performance Art 题目分析:水水的线段树,首先颜色只有30种,所以状压就好了,然后每次查询就把区间内所有的颜色“或”出来,用位运算判断一下有哪些颜色就好了。。 代码如下: #include <cstdio>#include <cstring>#include <algorithm>#in

“同学,vue的template是如何转为render函数的“

Vue 的 template 是如何一步步转换为渲染函数(render function)的过程涉及多个复杂的步骤。这个过程包括模板解析、AST 构建、优化和最终的渲染函数生成。以下是 Vue 中从 template 到 render 函数的详细转换步骤: 1. 模板编译概述 Vue 的模板编译过程分为以下几个主要步骤: 模板解析:将模板字符串转换为抽象语法树(AST)。 AST 优化:

奇异递归模板模式(Curiously Recurring Template Pattern)

奇异递归模板模式(Curiously Recurring Template Pattern) - 知乎 (zhihu.com) 本文来自上面的文章!!!本菜鸡学习和记录一下。 CRTP是C++模板编程时的一种惯用法:把派生类作为基类的模板参数。 1.静态多态 #include <iostream>using namespace std;template <typename Child>