koa art-template 模板引擎

一、常见模板引擎的性能对比

适用于 koa 的模板引擎选择非常多,比如 jadeejsnunjucksart-template 等。

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

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

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

 

官网:http://aui.github.io/art-template/
中文文档http://aui.github.io/art-template/

 

Koa 中使用 art-template 模板引擎

 npm install --save art-template 
npm install --save koa-art-template
 const Koa = require('koa');
const render = require('koa-art-template');
const app = new Koa(); 
render(app, {
    root: path.join(__dirname, 'view'),
    extname: '.art',
    debug: process.env.NODE_ENV !== 'production'
});
app.use(async function (ctx) {
    await ctx.render('user'); });
app.listen(8080);

三、art-template 模板引擎语法

 

参考:http://aui.github.io/art-template/zh-cn/docs/syntax.html


/*
 http://aui.github.io/art-template/koa/

 1、

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


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


 3、
 render(app, {
     root: path.join(__dirname, 'view'),   视图的位置
     extname: '.art', 后缀名
     debug: process.env.NODE_ENV !== 'production'  是否开启调试模式

 });
4、
 await ctx.render('user');
* */
var Koa=require('koa'),
    router = require('koa-router')(),
    render = require('koa-art-template'),
    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)=>{
   //ctx.body="首页"
    let list={

        name:'张三',
        h:'<h2>这是一个h2</h2>',
        num:20,
        data:['11111111','2222222222','33333333333']
    }

    await ctx.render('index',{
        list:list

    });
})
//接收post提交的数据
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);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>

    <link rel="stylesheet" href="css/basic.css"/>
</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>

    <link rel="stylesheet" href="css/basic.css"/>
</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>
原文地址:https://www.cnblogs.com/loaderman/p/11511557.html