java 视图引擎_那些最受欢迎的 Node.js 视图引擎

本文介绍了Node.js中几种常用的视图引擎,包括EJS、Pug和Handlebars.js等,通过实例展示了如何设置视图引擎并在项目中使用它们进行数据渲染。

Node js 视图引擎就像 Laravel 中的 Blade。其最基本的定义是,视图引擎是帮助我们用比通常更短、更简单的方式编写 HTML 代码并重用的工具。此外,它还可以从服务器端导入数据并渲染最终的 HTML。Node.js 项目中一些常见的视图引擎如下:

什么是 Nod.js 视图引擎?

EJS

Pug (Formerly Jade)

Handlebars

Haml.js

Nunjucks

今天我将尝试上面的一些模板,看看哪一个更容易使用。开始吧!

EJS

首先要为本文创建一个演示程序,我们需要用 ExpressJS 创建一个项目。用express-generator 可以快速创建这个项目。

sudo npm install express-generator -g

express --view=ejs Demo_EJS

运行以上命令用 Node.js ejs 视图引擎创建项目时,我们的项目具有以下目录结构:

通过上面的命令,我们用 EJS 视图引擎创建了一个 Express 项目。此视图引擎在 app.js 文件中设置如下:

//...//view engine setupapp.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'ejs');

//...

接下来说明如何使用,我将创建网站的基本布局,并从服务器渲染数据。首先,从服务器渲染数据。

编辑 routes/index.js 文件:

var express = require('express');

var router = express.Router();

/* GET home page. */

router.get('/', function(req, res, next) {

let list = [

{name: 'PHP'},

{name: 'Ruby'},

{name: 'Java'},

{name: 'Python'},

{name: 'dotNet'},

{name: 'C#'},

{name: 'Swift'},

{name: 'Pascal'},

]

res.render('index', {title: 'Demo Ejs', list: list});

});

module.exports = router;

index.ejs 文件内容:

This is header

List of programming languages

This is footer

我们已经实现了在服务器对视图进行渲染。另外我们还可以通过添加 header.ejs 文件来分割页眉、页脚,然后包含如下脚注:

List of programming languages

Pug

Pug - 以前名为 Jade,也是一个受欢迎的 Node.js 视图引擎项目。要使用它,请按如下方式设置视图引擎:

//view engine setupapp.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'pug');

通过上面的例子,我们使用以下内容创建了 pug 文件:

//file layout.pug

doctype html

html

head

title= title

link(rel='stylesheet', href='/stylesheets/style.css')

body

include header

block content

include footer

//file index.pug

extends layout

block content

h1= title

| List of programming languages

ul

each item in list

li= item.name

我们可以看到在相同的内容中,Pug 的代码是如此清晰、简洁和易于理解。 Pug 的工作方式与 Python 语言大致相同,即使用缩进或空格。

Hbs (Handlebars.js)

要使用此模板,需要把引擎视图设置为 hbs。同时必须注册 blocks(在 handlebarjs 中称为 partial),如下所示:

var hbs = require('hbs');

hbs.registerPartials(__dirname + '/views/partials');

app.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'hbs');

针对上述问题,我们还将创建具有以下内容的 hbs 文件:

// file layout.hbs

{{title}}

{{> header}}

{{{body}}}

{{> footer}}

// file /views/partials/header.hbs

This is header

//file /views/partials/footer.hbs

This is footer

//file index.hbs

{{title}}

List of programming languages

{{#each list}}

{{name}}

{{/each }}

结论

我在 Nodejs 项目中测试了一些流行的视图引擎。在你的开发工作中可以选择 Pug,因为它非常简单易懂。

欢迎关注前端公众号:前端先锋,领取前端工程化实用工具包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值