koa art-template模板引擎的使用

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>

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

 

posted @ 2019-05-12 17:50  胡椒粉hjf  阅读(795)  评论(0编辑  收藏  举报