npm包 extended-ejs 使用教程

1. 什么是extended-ejs

extended-ejs是一个npm包,它是ejs的一个拓展,是一个使用更为方便的ejs模板引擎。它提供了模板继承、模板局部、模板钩子的功能,让我们可以更加方便快捷地管理模板。

2. 安装与使用

2.1 安装

使用npm进行安装:

--- ------- ------------

2.2 使用

在Node.js环境下,我们可以使用以下代码使用extended-ejs:

----- --- - ------------------------

然后,我们就可以在项目中使用extended-ejs了。

2.3 基本语法

extended-ejs的基本语法与旧版ejs的语法基本相同。它可以使用以下变量:

变量 描述
<% %> 指令标识
<%= %> 输出变量

extended-ejs也支持以下的新语法:

变量 描述
<%- %> HTML转义输出
<%# %> 注释标识
<% include partials/head %> 局部引入
<%%extends base/layout.ejs%%> 继承模板

2.4 实例

一个简单示例,我们用一个头部和一个底部,引入两个partials,未来我们可以串连请求,进行模板的重用:

--------- -----
----- ----------
------
    ----- ----------------
    ---------- ----- ----------
    -- ------- ------------- --
-------
------

--------
    -----
        ----
            ------ --------------------
            ------ --------------------
            ------ ----------------------
        -----
    ------
---------

------
    ------- ----- -------
    ------ ------- ------
-------

--------
    ----
    ----------------- ------------------ ---------------
    -- ------- --------------- --
---------

-------
-------

当我们用该模板进行数据渲染时,可以使用以下数据:

----- --- - ------------------------
----- ------- - ----------------------
----- ---- - -
  ------ ------- --------
  -------- ----- -- - --------- -- ---------
-
------------------------------- -------

当然,在这个例子中,我们没有用到extended-ejs的新特性。下面我们就来了解一下extended-ejs的模板继承、模板局部、模板钩子。

3. extended-ejs的新特性

3.1 模板继承

模板继承,是将一种模板的属性、样式、脚本等内容继承到其他模板中使用的过程。这一特性可以让我们不用重复更改相同的代码,也可以让我们创建一个基本布局,从而快速地制作出新的模板页面。

模板继承有两个基本的关键字:<%%extends%%><%%block%%>

  • <%%extends%%>是用来继承模板的,可以用来继承需要的模板文件。

  • <%%block%%>则是用来为继承下来的模板留出空白区域,可以在子模板里替换掉block区域的内容。

以下是继承模板的例子:

layout.ejs

--------- -----
----- ----------
------
    ----- ----------------
    ---------- ----- ----------
-------
------
    --- ---- --
-------
-------

index.ejs

---------- ------------------

-- ----- ------- --
    ------- ----- -------
    ------- -- ---- ------------
-- -------- --

如上示例中,index.ejs继承了layout.ejs,将title和body作为替换项,插入到layout.ejs中。其中,<%%extends%%>为关键字,紧跟着所要继承的模板名。

接下来,我们可以将这个模板渲染,输出到页面中:

----- --- - ------------------------
----- ------- - -----------------------
----- ---- - -
  ------ ------- --------
  -------- ----- -- - --------- -- ---------
-
------------------------------- -------

3.2 模板局部

在一个页面有多个部分时,如果每个部分都是固定、重复的,那么我们显然要进行大量的重复工作。这时,我们就可以使用模板局部。模板局部可以将一个模板引入另一个模板中,从而降低模板的重复度,并且方便对模板进行管理。

我们可以使用以下标记来引入模板局部:

-- ------- ------------- --

以上标记中,partials是模块根目录下的一个包含模板局部的文件夹,head是模板局部中的一个文件。

使用模板局部,可以使我们快速在不同的模板中添加重复内容。

3.3 模板钩子

模板钩子是一个能够在渲染过程中进行调用的函数。这个函数可以决定渲染器是否比这个模块提前退出,或者挂钩到渲染过程中的特定元素上。

举个例子,在渲染过程中,你或许想对你的数据的属性进行修改或处理。在这种情况下,你就可以从终结点开始挂钩,渲染器会像一个管道一样,经过你所定义的“钩子”函数,直至终点。

下面是一个使用钩子函数的例子:

--------- -----
----- ----------
------
    ----- ----------------
    ---------- ----- ----------
-------
------
--- ---- --
--- ---------------------------- --
-------
-------

在以上的例子中,在body元素渲染完成之后,我们会调用参数为'after:body'的钩子,从而更改渲染后的结果。

钩子函数主要由以下两个函数调用:

  1. register: 注册一个钩子函数。

  2. hook: 执行已经注册的钩子函数。

----- --- - ---------------
----- ---- - ------------------- --- ---- -------------------
----- ---- - ------ ---------
------------------------------------ -- -- ------------------- --------------
---------------------------- -------

这就是模板钩子。如果你需要为你的模板添加更多的功能,模板钩子将帮助你实现这个目标。

4. 总结

extended-ejs是ejs的一个拓展,它提供了模板继承、模板局部、模板钩子的功能,使得使用ejs模板变得更加简单易用。在日常使用中,我们可以轻松管理模板的重复区域,快速创建模板页面。而模板钩子带来的功能则可以让我们更加灵活地处理模板数据,在模板渲染过程中进行修改和处理。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600668e2d9381d61a35409e6


猜你喜欢

  • npm 包 eslint-config-beedeez 使用教程

    如果您是一名前端开发人员,您可能知道 lint 工具和它们在代码规范中的重要性。当然,最有名的 lint 工具之一是 eslint。该工具可以使您遵循代码规范并找出潜在的代码错误。

    3 年前
  • npm 包 expires-storage 使用教程

    简介 expires-storage 是一个简单易用的 localStorage 包装,它允许你设置数据的有效期,超时后自动删除并返回默认值。在前端开发中,我们经常需要将一些数据缓存在本地,以提高用户...

    3 年前
  • npm 包 myps.broker 使用教程

    前言 npm(node package manager)是 Node.js 的包管理器,它为 Node.js 模块提供了一个公共的存储库,并可轻松地共享代码和解决依赖关系。

    3 年前
  • npm 包 generate-password-browser 使用教程

    随着互联网技术的不断发展,前端开发也变得越来越重要。而开发过程中需要使用到许多工具和库,为了提高效率和减少重复劳动,npm 包的使用成为了前端开发不可或缺的一部分。

    3 年前
  • npm 包 catta 使用教程

    catta 是一个非常实用的 npm 包,它可以帮助前端开发者在开发过程中更加得心应手。这篇文章将详细介绍 catta 的使用教程,希望能为你的开发过程提供指导和帮助。

    3 年前
  • npm 包 koa-roarr 使用教程

    在前端开发中,我们经常需要使用各种 npm 包来帮助我们解决问题。其中,koa-roarr 是一个非常优秀的 npm 包,它可以帮助我们更好地进行中间件日志管理。本文将详细介绍 koa-roarr 的...

    3 年前
  • npm 包 ads-token-gen 使用教程

    前言 在前端开发过程中,经常会涉及到鉴权和认证等相关操作。而 ads-token-gen 就是一个用于生成令牌的工具。ads-token-gen 是一个 npm 包,它可以快速生成令牌,这个令牌可以用...

    3 年前
  • npm 包 @f0c1s/blue 使用教程

    介绍 @f0c1s/blue 是一个基于 React 的 UI 组件库,包含多个常用组件,如按钮、输入框、表格等,同时提供了强大的扩展能力,使得用户可以自定义组件样式,并支持响应式布局。

    3 年前
  • npm 包 @f0c1s/cyan 使用教程

    前言 在前端的开发过程中,我们经常会遇到一些需要将文本或数据进行加密的情况,这时候我们需要使用一些工具来帮助我们处理数据。而 @f0c1s/cyan 就是一个可以对字符串进行高安全性加密的 npm 包...

    3 年前
  • NPM 包 @f0c1s/green 使用教程

    介绍 NPM 是现代前端开发中必不可少的工具之一,而 @f0c1s/green 则是一个非常有用的 NPM 包,是一款易于使用的 CSS 响应式框架,旨在帮助前端开发人员快速构建美观易用的 UI 界面...

    3 年前
  • npm 包 @f0c1s/magenta 使用教程

    什么是 @f0c1s/magenta @f0c1s/magenta 是一个基于 magenta-js 包装的 npm 包。Magenta 是 Google Brain 团队开发的一个机器学习工具包,用...

    3 年前
  • npm 包 koa1-json-mask 使用教程

    在前端开发中,处理 JSON 数据是常见的任务。koa1-json-mask 是一款用于 Koa 框架的 JSON 数据处理中间件,可以方便地过滤、重命名、限制 JSON 数据的输出,帮助我们更灵活地...

    3 年前
  • npm 包 @irkfdb_in/irkfdb-node-client 使用教程

    介绍 @irkfdb_in/irkfdb-node-client 是一个 Node.js 库,用于在 Node.js 项目中方便地与我们的数据库服务进行交互。通过使用该库,您可以轻松地完成从数据库中的...

    3 年前
  • npm 包 myps.logger 使用教程

    在前端开发中,很多时候我们需要输出日志来进行调试、排错和监控等工作。而在 Node.js 环境下,则可以通过 npm 包来实现日志输出的功能。本篇文章将介绍 npm 包 myps.logger 的使用...

    3 年前
  • npm 包 myps.logviewer 使用教程

    在前端开发中,我们时常会需要查看日志信息来调试程序。但是,如果日志文件内容过大,手动查看会非常困难。为了方便查看日志,各种日志查看工具也应运而生。其中,npm 包 myps.logviewer 是一款...

    3 年前
  • npm 包 just-fasak 使用教程

    前言 在 JavaScript 应用开发过程中,我们经常需要处理字符串,特别是字符串的大小写转换。但是 JavaScript 的内置方法并不是很灵活,因此涌现出了很多第三方库来解决这个问题。

    3 年前
  • npm 包 nj-eraser 使用教程

    在前端开发中,我们经常会遇到需要对一些文本进行格式化的需求,例如去掉多余的空格、换行符等等。为了让开发人员更加方便快捷地完成这些操作,有许多的 npm 包被开发出来,其中 nj-eraser 就是其中...

    3 年前
  • npm 包 smtp2 使用教程

    前言 在前端开发中,我们经常需要使用邮箱来发送验证信息、接收通知等,而 smtp2 是一个 npm 包,可以让我们方便地使用 Node.js 发送邮件。本文将介绍 smtp2 的使用方法及示例代码,帮...

    3 年前
  • NPM 包 @f0c1s/black 使用教程

    1. 前言 在前端开发中,代码风格的统一很重要。否则不同开发者编写的不同风格的代码会极大影响代码的可读性和可维护性。因此,我们需要使用一款代码格式化工具,以保持代码风格一致。

    3 年前
  • npm 包 spunk 使用教程

    在前端开发中,我们往往需要处理大量的数据。而 spunk 这个 npm 包可以帮助我们更加方便地对数据进行处理,包括对数据进行解析、筛选、转换等等操作。在本篇文章中,我们将详细介绍如何使用 spunk...

    3 年前

相关推荐

    暂无文章