zoukankan      html  css  js  c++  java
  • 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>

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

  • 相关阅读:
    C# Tostring()方法
    sql order by和case THEN 并用
    Lazarus Reading XML- with TXMLDocument and TXPathVariable
    Lazarus Reading XML- with TXMLDocument and TDOMNode
    Lazarus Coolbar and AnchroDocking
    Windows live writer 2012 测试
    组态王数据字典区块定义
    组态软件状态指示定义
    西门子Step7中DB块结构导出
    Delphi 不用标题栏移动窗体
  • 原文地址:https://www.cnblogs.com/LO-ME/p/10853035.html
Copyright © 2011-2022 走看看