vue项目未加载完成前显示loading

本文探讨了成为强者的心路历程,并分享了一个实用的Vue项目加载优化技巧,通过在页面完全加载前展示loading界面来提升用户体验。

真正的强者,他们在年轻的时候,经历了沧桑,化解了迷茫,学会了坚强,懂得了疗伤。他们在哪里都能活,哪里都是舒适区,哪里都是自己的天堂
在这里插入图片描述

vue项目未加载完成前显示loading

vue作为单页面,首次加载是比较慢的,加载完成前显示的load界面较有必要!!

解决方法:

public/index.html

<div id="app">
      <div class="avue-home">
        <div class="avue-home__main">
            <img class="avue-home__loading" src="./svg/loading-spin.svg" alt="loading">
            <div class="avue-home__title">
                正在加载资源
            </div>
            <div class="avue-home__sub-title">
                初次加载资源可能需要较多时间 请耐心等待
            </div>
        </div>
        <div class="avue-home__footer">
            <a>Copyright 2017 © SOS Inc. All Rights Reserved. 浙江索思科技有限公司版权所有 Powered by 浙江索思科技有限公司</a>
        </div>
      </div>
    </div>


在id = app的节点中编写你要展示的load状态,加载好项目,自动会填充app里的内容!!!

Vue3项目中,有多种方法可以实现页面数据加载完成展示loading效果: - **自定义插件实现全局加载loading动画蒙层效果**:可以实现一个简单的loading加载动画蒙层效果插件,该插件支持在项目中任何需要使用的地方直接引入使用。动画效果可参考借鉴Web安全色 | CSS可视化,里面有很多纯css实现的动画效果[^2]。 - **通过自定义变量控制loading显示隐藏**:自定义一个变量`isLoading`初始化为`true`,在数据请求成功之后将变量改为`false`,在`template`中通过变量来控制是否显示隐藏,还可使用Vue自带的过渡效果增加用户体验。需要在全局的css中加入过渡需要的样式: ```css .fade-enter, .fade-leave-active { opacity: 0; } .fade-enter-active, .fade-leave-active { transition: opacity 0.5s; } ``` `.vue`文件使用代码示例片段: ```vue <template> <div> <transition name="fade"> <loading v-if="isLoading"></loading> </transition> </div> </template> <script setup> import { ref, onMounted } from 'vue'; import Loading from '@/components/loading'; const isLoading = ref(true); const loadPageData = async () => { // 模拟axios请求页面数据 await new Promise(resolve => setTimeout(resolve, 2000)); isLoading.value = false; }; onMounted(() => { loadPageData(); }); </script> ``` - **使用特定方法添加loading效果**:具体实现时,先获取当上下文,然后调用`$loading`方法创建loading实例,中间进行一系列操作,上传成功后关闭loading显示上传成功信息。示例代码如下: ```javascript let thisContent = this; let loading = thisContent.$loading({ lock: true, text: '上传中,请稍候...', spinner: 'el-icon-loading', background: 'rgba(0, 0, 0, 0.5)' }); // 中间进行一系列的操作 // 上传成功后关闭loading,并显示上传成功 loading.close(); thisContent.$message('上传文件成功'); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值