nodejs之模板引擎(渲染模板)

模板引擎简介

art-template是一个简单且超快速的模板引擎,可通过范围内预先声明的技术优化模板渲染速度,从而实现接近JavaScript极限的运行时性能。同时,它同时支持NodeJS和浏览器。
特征

  • 性能接近JavaScript渲染限制
  • 调试友好。语法错误或运行时错误将准确定位在模板的哪一行。支持在模板文件中设置断点
  • 支持Express,Koa,Webpack
  • 支持模板继承和子模板
  • 浏览器版本只有6KB

语法模板

art-template同时支持两种模板语法。标准语法使模板更易于读写。

{{if user}} < h2 > {{user.name}} </ h2 > {{/ if}}

而原始语法具有强大的逻辑处理能力。

< % if(用户){%> < h2 > < %= user.name%> </ h2 > < % }%>

核心方法

根据模板名称渲染模板:
template(filename,data)
filename值可以是:一个art文件的路径地址
__dirname+’***.art’
path.join(__dirname,‘文件夹’,’***.art’)
将模板的源代码编译为函数:
template.compile(source,options)

将模板的源代码编译为函数,并立即调用它:
template.render(source,data,options)

不管哪种方法,首先要通过npm联网下载这个模板,安装语句是:npm install art-template --save--dev
下载之后会自动安装一个文件夹,需要用的时候直接引入模板即可:
在这里插入图片描述

template(filename,data)

filename:是需要渲染的文件名
data:是需要渲染的数据
需要渲染的文件可以是==.tpl文件或.art==文件

const template = require('art-template');
const http = require('http')
var html = template(__dirname+'/mytpl.art',{
    user:{
        name:'pikaqiu'
    }
})
console.log(html);

.art文件内容:

{{if user}}
    <h2>{{user.name}}</h2>
{{/if }}

输出结果是:
在这里插入图片描述

template.compile(source,options)

source:要加载的模板

let tpl = '<ul>{{each list as value}}<li>{{value}}</li>{{/each}}</ul>';
let render = template.compile(tpl);//编译解析
let ret = render({
    list:['red','black','yellow']
//用模板引擎 中提供的方法 实现数据填充
})
console.log(ret);

此处,返回的render是一个函数。
each是模板引擎提供的循环,循环一个list数组(集合)。
在这里插入图片描述

template.render(source,data,options)

source:要渲染的模板
data:要显示的数据

//第一种模板
let tpl = '<ul>{{each list as value}}<li>{{value}}</li>{{/each}}</ul>';
let ret = template.render(tpl,{
        list:['red','black','yellow']
    })
console.log(ret);

//第二种模板
let tpl = '<ul>{{each list}}<li>{{$index}}-----{{$value}}</li>{{/each}}</ul>';
let ret = template.render(tpl,{
    list:['apple','orange','banana']
});
console.log(ret);

这里的each是模板引擎提供的循环,循环一个list数组
as value相当于起了一个别名,叫value,等于 $value

$index是索引

$value是值

在这里插入图片描述
在这里插入图片描述

案例—渲染查询出来的成绩

let html = template(__dirname +'/score.art',{
    chinese:120,
    math:130,
    english:140
})
console.log(html)

score.art文件存放模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>语文:{{chinese}}</li>
        <li>数学:{{math}}</li>
        <li>英语:{{english}}</li>

    </ul>
</body>
</html>

结果如下:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Node.js模板引擎是用于在Node.js环境中生成动态HTML页面的工具。它可以帮助开发者将数据与HTML模板结合,生成最终的HTML页面。其中,art-template是一种简约、超快的模板引擎,它支持Node.js和浏览器两种环境,并且采用了作用域预声明的技术来优化模板渲染速度,获得接近JavaScript的极限运行性能。要使用art-template,首先需要在项目中安装art-template和express-art-template模块,可以通过npm install命令来安装:npm install --save art-template npm install --save express-art-template。然后,在Node.js应用程序中导入模板引擎,即可开始使用art-template渲染模板并生成HTML页面。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [nodejs模板引擎使用(详细)](https://blog.csdn.net/weixin_68658847/article/details/128596740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [用node开发应用程序,对nodejs+express工程打包封装,通常公司产品化的软件系统,需要标识为公司的logo和...](https://download.csdn.net/download/Thor027/88284823)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值