vue 首页加载缓慢、白屏现象的原因与解决办法

vue项目打包上线后,首次打开会发现加载很慢,出现白屏的问题,

一、问题原因

打开控制台查看文件加载情况,会发现app.js/vendor.js这两个文件加载时间较长

image

二、解决办法

1、图片压缩

使用webpack打包文件时,可以看到图片资源显示过大,使用工具进行压缩

image

2、去掉.map文件

webpack打包文件时,会看到有一些.map文件生成

image

  • 修改:
    找到config文件夹下的index.js文件,build里边的productionSourceMap值改为false即可

  • 10
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当在Vue中使用异步加载组件,有候可能会遇到白屏的问题。这通常是由于异步加载组件的过程中,加载间过长导致的。以下是一些常见的解决方法: 1. 添加加载状态:在异步加载组件的过程中,可以添加一个加载状态,显示一个loading界面或者加载动画,以提供用户反馈。这可以通过在组件的data中添加一个isLoading的状态来实现,并在加载完成后将其设置为false。 ```javascript data() { return { isLoading: true, // 初始加载状态为true component: null, // 初始化组件为null }; }, mounted() { import('./AsyncComponent.vue') .then((component) => { this.component = component.default; // 导入组件 }) .catch((error) => { console.error('Failed to load component:', error); }) .finally(() => { this.isLoading = false; // 加载完成,loading状态为false }); }, ``` 然后,在模板中根据isLoading状态来显示不同的内容: ```vue <template> <div> <!-- 根据isLoading状态显示不同内容 --> <div v-if="isLoading"> <!-- 显示loading界面或加载动画 --> <Loading /> </div> <div v-else> <!-- 异步加载的组件 --> <component :is="component" /> </div> </div> </template> ``` 2. 代码拆分与懒加载Vue支持代码拆分和懒加载,可以将组件按需加载,避免在初始加载加载所有组件。可以使用`import()`函数进行动态导入组件。 ```javascript Vue.component('AsyncComponent', () => import('./AsyncComponent.vue')); ``` 这样,组件将会在需要使用才进行加载,减少了初始加载的资源量。 3. 预加载组件:如果某个组件在初始加载不会被立即使用,但是会在后续被频繁使用,可以考虑使用Vue提供的`Vue.component`的`preload`函数来预加载组件。这样可以在初始加载就预先加载该组件,避免后续使用的延迟。 ```javascript Vue.component('AsyncComponent', () => import('./AsyncComponent.vue').then(m => m.default), { preload: true }); ``` 通过以上方法,可以解决异步加载组件导致的白屏问题。希望对您有所帮助!如果还有其他问题,请随提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值