npm 包 ssr-client-utils 使用教程

阅读时长 6 分钟读完

介绍

ssr-client-utils 是一个在客户端使用时的工具集,可以帮助我们处理一些在服务端渲染时已经处理好的数据,比如直出的 html 以及针对 SEO 做的优化。

安装

我们可以使用 npm 安装 ssr-client-utils

安装完成后,我们需要通过 import 或者 require 引入这个包:

如果您在项目中使用的是 ES6 或者 TypeScript,您也可以使用如下方式引入:

使用方法

getMeta

getMeta 方法可以帮助我们获取直出 html 中的 meta 信息,一般可以用于设置页面的标题、关键词、描述等。

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

我们假设在某个页面的直出 html 里面包含了如上的 meta 信息,我们可以使用如下代码来获取对应的值:

copyStyles

copyStyles 方法可以帮助我们把服务端渲染好的样式复制到客户端,避免出现页面闪烁的现象。

我们需要在服务端渲染时将 css 信息储存到上下文参数里面,然后在客户端复制一份到头部。

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

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

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

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

  ------ ----
-

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

结语

作为一个前端开发人员,我们在开发客户端渲染的应用时,需要考虑 SEO 以及页面首次加载时的性能问题。ssr-client-utils 就是为了解决这些问题而生的。在使用这个库的时候,我们需要注意:

  • 在服务端渲染时,需要把相关的信息记忆在上下文参数里面。
  • 在客户端使用时,需要按照文档提供的方式引入并使用。

这样,在我们开发完客户端应用后,就可以利用 ssr-client-utils 解决 SEO 和页面初次加载时的性能问题了。

示例代码

在下面的示例代码中,我们假设服务端渲染时使用了 styled-components 来编写页面的样式。示例代码是在 Next.js 项目中使用 ssr-client-utils 的例子。

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

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

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

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

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

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

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

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

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

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

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

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

纠错
反馈