Nunjucks
前端
Nunjucks

Nunjucks 是一个强大的 JavaScript 模板引擎,它受 Jinja2 和 Django 模板语言的启发,适用于 Node.js 环境和浏览器环境,能帮助开发者将数据和模板分离,动态生成 HTML、文本等内容。

Nunjucks 是一个强大的 JavaScript 模板引擎,它受 Jinja2 和 Django 模板语言的启发,适用于 Node.js 环境和浏览器环境,能帮助开发者将数据和模板分离,动态生成 HTML、文本等内容。以下从多方面对其进行介绍:

特点

  1. 语法简洁易懂:Nunjucks 的语法和 Python 的 Jinja2 以及 Django 模板语言类似,易于学习和使用,开发者可以快速上手。
  2. 功能丰富:支持变量、过滤器、标签、宏等多种功能,能满足复杂的模板渲染需求。
  3. 灵活可扩展:允许用户自定义过滤器、标签和加载器,方便根据项目需求进行扩展。
  4. 安全可靠:具备自动转义功能,可有效防止 XSS 攻击,保障应用程序的安全性。

基本语法

变量

使用双花括号 {{ }} 来输出变量的值。

 

html
<p>Hello, {{ name }}!</p>

标签

标签使用 {% %} 包裹,用于实现逻辑控制,如条件判断、循环等。

 

html
{% if age >= 18 %}
    <p>You are an adult.</p>
{% else %}
    <p>You are a minor.</p>
{% endif %}

过滤器

过滤器用于对变量进行处理,使用管道符号 | 连接变量和过滤器名称。

 

html
<p>{{ description | truncate(50) }}</p>

常用功能

条件语句

html
{% if user.isAdmin %}
    <p>Welcome, admin!</p>
{% elif user.isLoggedIn %}
    <p>Welcome, user!</p>
{% else %}
    <p>Please log in.</p>
{% endif %}

循环语句

html
<ul>
    {% for item in items %}
        <li>{{ item }}</li>
    {% endfor %}
</ul>

继承与块

可以创建基础模板,然后通过继承和块来实现模板的复用和扩展。
base.html

 

html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
    <header>
        <h1>My Website</h1>
    </header>
    <main>
        {% block content %}
            <p>This is the default content.</p>
        {% endblock %}
    </main>
    <footer>
        <p>&copy; 2024 My Website</p>
    </footer>
</body>
</html>

 

index.html
html
{% extends "base.html" %}

{% block title %}Home Page{% endblock %}

{% block content %}
    <p>Welcome to the home page!</p>
{% endblock %}

使用示例

以下是在 Node.js 中使用 Nunjucks 的简单示例:

 

javascript
const nunjucks = require('nunjucks');

// 配置 Nunjucks 环境
nunjucks.configure('views', {
    autoescape: true,
    express: app
});

// 渲染模板
const data = {
    name: 'John',
    age: 25
};
const html = nunjucks.render('index.html', data);
console.log(html);

工作流程

  1. 安装:在 Node.js 项目中,使用 npm install nunjucks 进行安装。
  2. 配置环境:创建 Nunjucks 环境,指定模板文件的存放路径。
  3. 编写模板:使用 Nunjucks 语法编写模板文件。
  4. 准备数据:在服务器端准备要传递给模板的数据。
  5. 渲染模板:调用 render 方法将数据和模板结合,生成最终的 HTML 内容。
  6. 返回响应:将生成的 HTML 内容返回给客户端。

 

Nunjucks 以其简洁的语法、丰富的功能和良好的扩展性,成为了很多开发者在构建 Web 应用时处理模板渲染的首选工具。

相关导航

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注