解决项目加载时空白页面

背景:当前端项目加载时,遇到网络不稳定或更新项目时,出现长时间白屏情况,对用户体验非常不友好。

解决方法

  • CSN加速
  • 增加带宽
  • 前端页面修改

本文就第三点展开

index.html页面 (public文件夹下)

html 复制代码
<!DOCTYPE html>
<html lang="">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <link rel="stylesheet" href="<%= BASE_URL %>styles/base.css">
    <title>
        <%= htmlWebpackPlugin.options.title %>
    </title>
    <link href="./styles/base.css">
</head>

<body>
<div id="mainLoading">
    <div class="ddr ddr1"></div>
    <div class="ddr ddr2"></div>
    <div class="ddr ddr3"></div>
    <div class="ddr ddr4"></div>
    <div class="ddr ddr5"></div>
</div>
<div id="app" style="display: none"></div>
</body>

base.css

css 复制代码
#mainLoading {
    width: 100%;
    height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

#mainLoading .box {
    display: flex;
    align-items: center;
    justify-content: center;
}

#mainLoading .ddr {
    width: 8px;
    height: 100px;
    float: left;
    margin: 2px;
    background-color: #4890FF;
    animation: loading 1s infinite ease-in-out; /*animation:动画名称 持续时间 动画速度曲线 延迟 执行多少次 是否正反方向轮流播放*/
}

#mainLoading .ddr2 {
    animation-delay: -0.9s; /*定义开始执行的地方,负号表示直接从第900ms开始执行*/
}

#mainLoading .ddr3 {
    animation-delay: -0.8s;
}

#mainLoading .ddr4 {
    animation-delay: -0.7s;
}

#mainLoading .ddr5 {
    animation-delay: -0.6s;
}

@keyframes loading {
    0%,
    40%,
    100% {
        /*定义每帧的动作*/
        -webkit-transform: scaleY(0.5);
    }
    20% {
        -webkit-transform: scaleY(1);
    }
}

App.vue 添加钩子函数

html 复制代码
  mounted() {
    // 关闭loading
    document.getElementById('mainLoading').style.display = 'none';
    document.getElementById('app').style.display = 'block';
  },

效果图 loading动画覆盖白屏。

相关推荐
PBitW1 小时前
vue3+vite+eslint|prettier+elementplus+国际化+axios封装+pinia
vue.js·vite·eslint·prettier·vue3+vite·eslint+prettier
小镇学者7 小时前
【JS】element-ui table展示勾选状态
javascript·vue.js·ui
资深前端之路8 小时前
react面试题三
前端·vue.js·react.js
城沐小巷11 小时前
基于SpringBoot+vue高效旅游管理系统
vue.js·spring boot·旅游
wl851111 小时前
Vue 入门到实战 八
前端·javascript·vue.js
呦呦鹿鸣Rzh11 小时前
前端工程化-vue项目
前端·javascript·vue.js
m0_5287238112 小时前
HTML5 新特性有哪些?
前端·html·html5
林涧泣13 小时前
【Uniapp-Vue3】z-paging插件组件实现触底和下拉加载数据
前端·vue.js·uni-app
本尊3016315 小时前
vue3 Computed实现原理
前端·vue.js
Monly2117 小时前
Vue:Table合并行于列
前端·javascript·vue.js