art-template 模板引擎介绍

art-template 是一个简约、超快的模板引擎。

它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行 性能,并且同时支持 NodeJS 和浏览器。

art-template 支持 ejs 的语法,也可以用自己的类似 angular 数据绑定的语法

官网地址中文文档

在 Koa 中使用 art-template 模板引擎

首先安装art-template中间件

npm install --save art-template
npm install --save koa-art-template

在node应用的app.js中引入,并且配置(配置的时候需要path模块,所以也需要引入path模块)

const render = require('koa-art-template');
const path = require('path');

配置对应路由的模板,并且向模板传递数据

let Koa = require('koa')
let router = require('koa-router')()
const render = require('koa-art-template');
const path = require('path'); var app = new Koa() //配置 koa-art-template模板引擎
render(app, {
root: path.join(__dirname, 'views'), // 视图的位置
extname: '.html', // 后缀名
debug: process.env.NODE_ENV !== 'production' //是否开启调试模式
}); router.get('/',async (ctx)=>{
let list = {
name: '张三',
h: '<h2>这是一个h2</h2>',
num: 20,
data: ['11111111','2222222222','33333333333']
}
await ctx.render('index',{
list:list
});
})
router.get('/news',async (ctx)=>{
let app = {
name: '张三11',
h: '<h2>这是一个h211</h2>',
num: 20,
data: ['11111111','2222222222','33333333333']
};
await ctx.render('news',{
list: app
});
}) app.use(router.routes()); /*启动路由*/
app.use(router.allowedMethods());
app.listen(3000);

然后就是在模板中解析传递过来的数据,分别是views/index.html(ejs的写法),views/news.html(art的写法),views/public/footer.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2 class="title">这是一个koa-art-template</h2>
<h2>绑定数据</h2>
<%=list.name%>
<br/>
<%= 1 + 2 %>
<br/>
<hr/>
<br/>
<h2>绑定html数据</h2>
<%=list.h%>
<%-list.h%>
<br/>
<hr/>
<br/>
<h2>条件</h2>
<%if(num>10){%>
大于10
<%}else{ %>
小于10
<%}%>
<br/>
<hr/>
<br/>
<h2>循环数据</h2>
<ul>
<%for(var i=0; i<list.data.length; i++){%>
<li><%=list.data[i]%></li>
<%}%>
</ul>
<br/>
<hr/>
<br/>
<% include('./public/footer.html') %>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2 class="title">这是一个koa-art-template</h2>
<br/>
<h2>绑定数据</h2>
{{list.name}}
<br/>
<hr/>
<br/>
<h2>绑定html数据</h2>
{{@list.h}}
<br/>
<hr/>
<br/>
<h2>条件</h2>
{{if num>20}} <sapn>大于20</sapn> {{else}} <sapn>小于20</sapn>{{/if}}
<br/>
<hr/>
<br/>
<h2>循环数据</h2>
<ul>
{{each list.data}}
<li>{{$index}}---{{$value}}</li>
{{/each}}
</ul>
<br/>
<hr/>
<br/>
{{include 'public/footer.html'}}
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是一个底部</h1>
</body>
</html>

最后浏览器访问,查看效果

koa art-template模板引擎的使用的更多相关文章

  1. Django基础,Day10 - template 模板引擎与路径设置

    作为一个Web框架,Django需要一个方便的方式来生成动态的HTML.最常见的方法依赖于模板.模板包含所需的HTML输出的静态部分以及一些特殊的语法描述如何插入动态内容. Django框架后端默认支 ...

  2. KOA的简易模板引擎实现方式

    上上一期链接--也就是本文的基础,参考KOA,5步手写一款粗糙的web框架 上一期链接--有关Router的实现思路,这份Koa的简易Router手敲指南请收下 本文参考仓库:点我 上一期科普了Rou ...

  3. koa 基础(十三)koa-art-template 模板引擎的使用

    1.项目目录 2.app.js /** * http://aui.github.io/art-template/koa/ * 1.npm install --save art-template * n ...

  4. art template前端模板引擎

    偶然看到后台有一段代码 采用的是art template的模板引擎 地址为 http://aui.github.io/artTemplate/ 这段代码很简洁 var html = template( ...

  5. 如何选择Javascript模板引擎(javascript template engine)?

    译者 jjfat 日期:2012-9-17  来源: GBin1.com 随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下: ...

  6. jquery template.js前端模板引擎

    作为现代应用,ajax的大量使用,使得前端工程师们日常的开发少不了拼装模板,渲染模板 在刚有web的时候,前端与后端的交互,非常直白,浏览器端发出URL,后端返回一张拼好了的HTML串.浏览器对其进行 ...

  7. JavaScript模板引擎Template.js使用详解

    这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   template.js 一款 JavaScript 模板引 ...

  8. 腾讯模板引擎template

    template.js是一款JavaScript模板引擎,用来渲染页面的. 原理:提前将Html代码放进编写模板  script id="tpl" type="text/ ...

  9. 3、KOA模板引擎+访问静态资料中间件

    一.Koa模板引擎初识1.安装中间件 : npm i --save koa-views2.安装ejs模板引擎 :npm i --save ejs3.编写模板:<%= title %> 是调 ...

随机推荐

  1. git拉取单个子目录

    初始化一个目录cron(需要拉取的的是code下的cron目录) git init cron 进入目录cd cron/ git remote add -f code ssh://git@192.168 ...

  2. 数组的push()、pop()、shift()和unshift()方法

    JavaScript的数组是一个拥有堆栈和队列自身优点的global对象.也就是说JavaScript数组可以表现的像栈(LIFO)和队列(FIFO)一样操作.这也是JavaScript数组强大的可操 ...

  3. Solr基础知识一(安装配置)

    最近接到需求,要修改网站内的搜索规则,就去看了下Solr的资料.现在做完需求了,回来做一些笔记,方便以后查找. 一.安装 1.1 配置JDK JDK下载地址为:https://www.oracle.c ...

  4. MySQL Index--平衡树结构

    树结构 ==================================================B树,即平衡二叉树,每个非叶子节点最多拥有两个子节点.所有键值出现在叶子节点和非叶子节点. ...

  5. 18.centos7基础学习与积累-004-分区理论

    1.从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 1.常规分区:数据不是特别重要的业务(集群的某个节点) /boot  引导分区 ...

  6. KClass与函数引用详解

    继续学习Kotlin反射相关的东东. KClass: 在上一次是通过类来获取它的KClass对象: 那如果是一个对象呢?与这个对象对应的类的KClass对象又是如何获取的呢?像Java也是一样有相关机 ...

  7. P3375 模板 KMP字符串匹配

    P3375 [模板]KMP字符串匹配 来一道模板题,直接上代码. #include <bits/stdc++.h> using namespace std; typedef long lo ...

  8. Echo团队Alpha冲刺随笔 - 第八天

    项目冲刺情况 进展 程序基本完成,根据实际,添加完善新接口 问题 根据功能对接出现的问题继续进行改进 心得 放假了放松下 今日会议内容 黄少勇 今日进展 测试小程序,添加异常和错误操作的处理 存在问题 ...

  9. C++对象内存模型1(堆栈模型)(转)

    对象内存模型 一. 栈(Stack) VS. 堆(heap) 栈 由系统自动管理,以执行函数为单位 空间大小编译时确定(参数+局部变量) 函数执行时,系统自动分配一个stack 函数执行结束时,系统立 ...

  10. makefile的三个变量

    “$@”代表目标文件. “$^”代表所有的依赖文件. “$<”代表第一个依赖文件. main:main.o mytool1.o mytool2.o gcc -o $@ $^ .c.o: gcc ...