Vue SPA 应用实现全局 Loading 效果的方法

阅读时长 5 分钟读完

在 Vue 单页面应用 (SPA) 开发过程中,为了提升应用的用户体验,我们可以采用全局 Loading 效果来提示用户当前页面正在加载数据。本文将介绍如何在 Vue SPA 应用中实现全局 Loading 效果的方法。

实现思路

实现全局 Loading 效果的方法有很多种,这里我们采用以下思路:

  1. 在 App.vue 组件中添加一个全局 Loading 组件。
  2. 在路由切换时,通过路由守卫来控制全局 Loading 组件的显示和隐藏。

添加全局 Loading 组件

在 App.vue 组件中添加一个全局 Loading 组件:

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

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

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

控制全局 Loading 显示和隐藏

我们可以采用 Vue 路由守卫的 beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave 方法来控制全局 Loading 组件的显示和隐藏。

在路由切换前,我们可以先设置 isLoading 为 true,表示全局 Loading 组件需要显示出来;在路由切换完成后,再设置 isLoading 为 false,表示全局 Loading 组件需要隐藏。

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

完整示例代码

下面是一个完整的示例代码,你可以直接复制代码到你的项目中进行测试。

App.vue:

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

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

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

Loading.vue:

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

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

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

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

总结

本文介绍了在 Vue SPA 应用中实现全局 Loading 效果的方法,通过添加全局 Loading 组件和控制路由守卫来实现。你可以根据自己的需求,自定义 Loading 组件的样式和动画,提升你的应用用户体验。

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

纠错
反馈