npm 包 @hapiness/ng-universal 使用教程

随着前端技术的不断发展和完善,前端渲染技术也越来越成熟,尤其是近年来兴起的服务端渲染技术,可以帮助我们有效地提高页面首屏渲染速度和 SEO 的效果。@hapiness/ng-universal 就是一个基于 Angular 6+ 实现的服务端渲染库,可以快速实现服务端渲染。

安装和使用

我们需要在项目中安装 @hapiness/ng-universal 库:

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

在使用之前,我们需要了解一些基本的使用方式和配置信息。

入口文件(main.server.ts)

@hapiness/ng-universal 需要我们自行创建一个 main.server.ts 文件作为服务端渲染的入口文件。通常情况下,我们会在基于 Angular CLI 生成的项目中进行如下配置:

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

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

主模块(AppModule)

我们需要将主模块转化为一个支持 Angular Universal 的模块,这样我们的服务端才能够把应用程序渲染到 HTML 中。我们需要创建一个 AppServerModule 类并实现 ngModuleFactory 的方法,返回一个已经预先编译好的模块工厂。具体来说,我们需要基于 AppModule 创建一个 AppServerModule,代码如下:

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

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

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

配置文件(webpack.server.config.js)

我们还需要为服务端打包生成的 JavaScript 文件单独配置一个 Webpack 打包文件,我们可以创建一个 webpack.server.config.js 文件,需要在里面完成以下配置(下面代码提供一个简单的示例):

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

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

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

完成以上配置之后,我们就可以在 package.json 中添加需要的 NPM scripts,如下:

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

示例代码

最后,提供一个简单的示例供大家参考和学习。

server.ts

-- ---------

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

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

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

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

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

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

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

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

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

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

main.ts

-- -------

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

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

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

app.module.ts

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

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

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

app.component.ts

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

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

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

总结

本文介绍了如何使用 @hapiness/ng-universal 实现基于 Angular 的服务端渲染方案,我们需要在项目中引入并配置 main.server.tsAppServerModulewebpack.server.config.js 等文件,并根据实际需求添加对应的 NPM scripts。在我们的示例代码中,我们演示了如何实现一个简单的服务端渲染页面。

总的来说,@hapiness/ng-universal 提供了一个方便快捷的服务端渲染工具,可以帮助我们在实际项目中有效地提高首屏渲染速度和 SEO 效果,从而提高用户体验和收益。

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


猜你喜欢

  • npm 包 @axaptional/object-id 使用教程

    本文将向你介绍一个非常实用的 npm 包 @axaptional/object-id,该包可以生成符合 MongoDB 风格的 ObjectId,并提供了一些方便的操作方法。

    4 年前
  • npm包vintage-popup使用教程

    在现代web开发中,弹出框经常用于提醒用户或显示额外的信息。但是,在设计上,这些弹出框通常很难达到优雅和美观。vintage-popup是一个强大而灵活的npm包,它可以简单地为您的网站添加美丽的弹出...

    4 年前
  • npm包@bluelovers/fast-glob使用教程

    fast-glob 是一个快速、简单的 Node.js 模块,方便地实现类似于 Unix shell 的 glob 表达式。 @bluelovers/fast-glob 是一种使用了 TypeScri...

    4 年前
  • npm 包 fabric-brush 使用教程

    Fabric-brush 是一个基于 Fabric.js 的画笔工具,可以帮助你在 Fabric.js 的基础上快速创建绘制工具,并且支持草稿模式、笔画加粗等功能。

    4 年前
  • npm 包 @hopin/render 使用教程

    前言 在前端开发中,我们经常需要接收来自后端的数据,并通过前端渲染展示在网页上。然而,当数据较多时,手动编写 HTML 代码会使代码变得冗长而繁琐。为了解决这个问题,有些前端开发者会尝试使用模板引擎,...

    4 年前
  • npm 包 bebark 使用教程

    在前端开发中,不可避免地需要使用许多第三方库。npm 包是前端开发中最流行的包管理器之一,它提供了便利的安装、更新和管理第三方库的方式。bebark 是一个功能强大、易用的 npm 包,可以帮助前端开...

    4 年前
  • npm 包 olturf 使用教程

    OLTurf 是一个开放的 GIS 库,它基于 TurfJS 构建一个更好的应用程序。这篇文章将为初学者介绍如何使用 npm 包 olturf 来处理地理空间数据。

    4 年前
  • npm 包 @hopin/markdown 使用教程

    在前端开发中,对文档编写和管理的需求非常重要,而 Markdown 作为一种轻量级的标记语言,在这方面得到了广泛应用。而 npm 包 @hopin/markdown 则是一个方便快捷的 Markdow...

    4 年前
  • npm 包 jquery-countdown-timer-control 使用教程

    在前端开发中,倒计时是一项常见的功能需求,例如网站活动的时间限制、秒杀活动等等。而使用 jQuery 插件 jquery-countdown-timer-control 可以轻松实现倒计时功能,本文将...

    4 年前
  • npm 包 @eva-ics/toolbox 使用教程

    介绍 @eva-ics/toolbox 是一个提供工具函数和组件的前端 npm 包,旨在提高前端开发效率和代码可读性。可以帮助开发者快速地实现一些常用的功能。 安装 可以通过 npm 安装: --- ...

    4 年前
  • npm 包 perspectives 使用教程

    在前端开发中,经常要用到图表来展示数据,而现在多数情况下都是使用 JavaScript 插件来实现。本篇文章将介绍一个非常方便且易于上手的 JavaScript 图表库——npm 包 perspect...

    4 年前
  • npm包 @rstruhl/chroma-js 使用教程

    在前端开发中,我们经常使用颜色来装饰网页的元素。而 @rstruhl/chroma-js 是一个强大的 JavaScript 库,可以用于创建、操作和转换各种颜色空间,从而使我们能够轻松地在网页中处理...

    4 年前
  • NPM 包 foxydriver 使用教程

    在前端开发中,我们需要用到很多库和工具,其中 npm 作为前端最常用的包管理器,为我们提供了许多方便的工具和库。foxydriver 就是一个这样的工具,它可以让我们更方便地对 Firefox 进行自...

    4 年前
  • npm 包 smjs-mysql 使用教程

    smjs-mysql 是一个基于 Node.js 的 MySQL 库,可以用来进行 MySQL 数据库的操作。本文将介绍如何使用 npm 包 smjs-mysql 进行 MySQL 数据库的连接与操作...

    4 年前
  • npm 包 cbk-ui 使用教程

    前言 随着前端技术的不断发展,我们的工作内容也越来越复杂,需要利用各种工具和库来提高我们的工作效率。其中,npm 包就是我们常用的工具之一。在 npm 上,有许多优秀的前端库和框架,这些库和框架可以帮...

    4 年前
  • npm 包 chen-vue-wangeditor-simple 使用教程 #

    介绍 chen-vue-wangeditor-simple 是一个适用于 Vue.js 的富文本编辑器组件,它基于 wangEditor 进行了封装,支持丰富的文本编辑功能,如文字样式、插入图片、插入...

    4 年前
  • npm 包 tm_require 使用教程

    介绍 tm_require 是一个可以让前端通过 JS 引入多个文件的 npm 包。通过它可以使前端项目结构更加清晰明了,减少了代码冗余和重复,提高了开发效率。 安装 --- ------- ----...

    4 年前
  • npm 包 multi-child-process 使用教程

    简介 在前端开发中,我们经常需要通过命令行启动多个子进程来完成一些任务,比如打包、压缩文件等操作。而 Node.js 的 child_process 模块提供了创建子进程的 API,但在实际使用中,我...

    4 年前
  • npm 包 matts-sick-validation-func 使用教程

    前言 在前端开发的过程中,验证用户输入是非常重要的一步。matts-sick-validation-func 这个 npm 包可以提供一些基本的表单验证功能,方便开发者快速进行表单验证设置。

    4 年前
  • npm 包 checked-box-list 使用教程

    简介 checked-box-list 是一个实用的 npm 包,它能够帮助开发者快速地实现带有复选框的列表,并且可以自动记录用户所选项目的状态。 这个 npm 包适用于各种前端开发场景,比如表单项的...

    4 年前

相关推荐

    暂无文章