Vue.js SPA 应用中的 404 页面实现方法

阅读时长 6 分钟读完

在 Vue.js 单页面应用(SPA)开发中,很多时候用户会访问到不存在的页面或资源,这时候我们需要提供一个友好的 404 页面。在本文中,我们将介绍如何在 Vue.js SPA 应用中实现 404 页面,并给出示例代码。

实现原理

在 Vue.js SPA 应用中,所有的页面都是由路由控制的,因此我们可以通过路由来实现 404 页面。Vue Router 提供了一个 fallthrough 选项,在处理完所有路由规则后,如果没有匹配到任何路由,就会显示 404 页面。

具体来说,我们需要在路由配置中添加一个通配符路由,并将其 component 属性设置为我们要显示的 404 页面的组件。这样,当用户访问不存在的页面时,就会显示我们自定义的 404 页面。

实现步骤

以下是实现 404 页面的具体步骤:

  1. 定义一个 404 页面的 Vue 组件,例如:
-- -------------------- ---- -------
----------
  -----
    ------- --- ----------
    --------- --- ---- --- --- ------- --- ---- --- ----------
  ------
-----------

--------
------ ------- -
  ----- -----------
-
---------
展开代码
  1. 在路由配置中添加一个通配符路由,并将其 component 属性设置为 404 组件,例如:
-- -------------------- ---- -------
----- ------ - --- -----------
  ----- ----------
  ------- -
    - ----- -------- ---------- ---- --
    - ----- --------- ---------- ----- --
    - ----- ----------- ---------- ------- --
    - ----- ---- ---------- -------- --
  --
--
展开代码

这样,当用户访问不存在的页面时,就会显示我们自定义的 404 页面。

注意事项

需要注意以下几点:

  1. 通配符路由应该放在路由配置的最后一项,否则它会匹配所有的路由规则,而不是仅当没有匹配的路由时才生效。

  2. 在使用 history 模式的路由时,如果用户直接访问不存在的页面,会返回 404 页面,但如果用户刷新 404 页面,会返回 404.html 页面,而不是继续显示自定义的 404 页面。这是因为服务器认为 404 页面是一个真正存在的静态文件,而不知道它实际上是一个动态生成的页面。为了解决这个问题,需要在服务器端配置重定向规则,将所有非真实存在的静态文件(包括 404 页面)都重定向到根页面上。

示例代码

以下是一个完整的示例代码:

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

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

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

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

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

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

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

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

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

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

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

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

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

--- -----
  --- -------
  -------
  ------- - -- -------
--
展开代码

使用该示例代码,用户访问不存在的页面时,会显示我们自定义的 404 页面。

结语

在 Vue.js SPA 应用中,实现 404 页面非常简单,只需要在路由配置中添加一个通配符路由,并将其 component 属性设置为我们要显示的 404 页面的组件。希望本文的介绍对您有所帮助。

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

纠错
反馈

纠错反馈