在 Express.js 中使用 Handlebars:一份完整的教程

阅读时长 6 分钟读完

在前端开发中,模板引擎是一个不可或缺的工具。Handlebars 是一种流行的 JavaScript 模板引擎,它可以帮助我们更好地组织和渲染页面。在本文中,我们将深入了解如何在 Express.js 中使用 Handlebars,为你提供一份完整的教程。

什么是 Handlebars?

Handlebars 是一种基于 JavaScript 的模板引擎,它允许你使用自定义标记来创建模板。与其他模板引擎不同,Handlebars 具有更加简单的语法和更高的可重用性,因此被广泛使用。

在 Express.js 中使用 Handlebars 的优势

使用 Handlebars 可以带来以下好处:

  • 更好的可读性和可维护性:Handlebars 提供了更加直观的语法和更好的代码结构,使得代码更加可读性和可维护性更高。

  • 更高的可重用性:Handlebars 允许你定义可重用的模板,这些模板可以在多个页面中使用,从而提高了代码的可重用性。

  • 更好的性能:Handlebars 的编译过程较快,因此在渲染页面时也可以提高性能。

安装 Handlebars

要在 Express.js 中使用 Handlebars,我们首先需要安装 Handlebars。可以通过 npm 安装 Handlebars,命令如下所示:

上述命令将安装 Handlebars 并将其添加到项目的依赖项中。

配置 Express.js

安装 Handlebars 后,我们需要在 Express.js 中配置 Handlebars。可以使用以下代码配置 Handlebars:

上述代码将 Handlebars 引擎注册到 Express.js 中,并将其设置为默认的视图引擎。

创建 Handlebars 模板

在 Express.js 中,我们可以使用 Handlebars 模板来渲染页面。Handlebars 模板使用 .handlebars 扩展名。以下是一个简单的 Handlebars 模板示例:

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

上述模板定义了一个 HTML 页面,其中使用了 Handlebars 的语法。在模板中,我们使用了 {{title}}{{heading}} 这两个变量,它们将在渲染页面时被替换为实际的值。另外,我们还使用了 {{#each}}{{/each}} 来迭代数组中的每个元素,并将其渲染为 HTML。

渲染 Handlebars 模板

在 Express.js 中,我们可以使用以下代码来渲染 Handlebars 模板:

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

上述代码将 index.handlebars 模板渲染为 HTML 页面,并将数据 data 传递给模板。在模板中,我们可以使用 {{title}}{{heading}}{{items}} 来访问数据中的值。

在模板中使用条件语句

在 Handlebars 中,我们可以使用条件语句来根据条件渲染不同的内容。以下是一个简单的条件语句示例:

上述代码将根据 is_admin 变量的值来渲染不同的内容。

在模板中使用循环语句

在 Handlebars 中,我们可以使用循环语句来迭代数组或对象中的每个元素,并将其渲染为 HTML。以下是一个简单的循环语句示例:

上述代码将迭代 users 数组中的每个元素,并将其渲染为 HTML。

在模板中使用 partials

在 Handlebars 中,我们可以使用 partials 来定义可重用的模板,并在其他模板中使用它们。以下是一个简单的 partials 示例:

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

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

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

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

上述代码定义了三个模板:header.handlebarsindex.handlebarsfooter.handlebars。在 index.handlebars 中,我们使用了 {{> header}} 来引用 header.handlebars 中的内容。同样,我们还使用了 {{> footer}} 来引用 footer.handlebars 中的内容。

在模板中使用 Helpers

在 Handlebars 中,我们可以使用 Helpers 来扩展模板的功能。以下是一个简单的 Helpers 示例:

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

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

上述代码定义了一个名为 toUpperCase 的 Helper,可以将传递给它的字符串转换为大写字母。在模板中,我们可以使用 {{toUpperCase name}} 来调用这个 Helper。

结论

在本文中,我们深入了解了如何在 Express.js 中使用 Handlebars。我们首先安装了 Handlebars,并将其配置到 Express.js 中。然后,我们创建了 Handlebars 模板,并使用数据来渲染它们。我们还学习了如何使用条件语句、循环语句、partials 和 Helpers 来扩展模板的功能。希望本文对你的学习和指导有所帮助!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675642f73af3f99efe59bd6b

纠错
反馈