• 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>
  • 相关阅读:
    Java练习题
    循环练习
    Java String类详解
    Collections类
    TreeSet类
    IOS基础:NSTimer类的使用
    IOS基础:深入理解Objectivec中@class的含义
    IOS基础:retain,copy,assign及autorelease
    IOS基础:ActionSheet(上拉菜单)的实现
    Xcode 模拟器生成目标目录位置查找
  • 原文地址:https://www.cnblogs.com/loaderman/p/11511557.html
Copyright © 2020-2023  润新知