我面对的是Web应用程序的性能,我不知道如何优化它。我的单页网站,良好的互联网加载在2-3秒,如果我把在2G和3G,它加载在大约+20秒。我已经安装了几个库本地Quasar,和WaveUI(之前我也使用NaiveUI,它花了大约1 M字节,我决定删除它。我如何增加网站的加载量和大小?
我所做的和尝试做的:
- 使用CDN,但它不工作。
- 我使用'defineAsyncComponent来表示“组件的延迟加载”。
- 从CSS/SCSS转换为Sass。
我甚至不使用任何繁重的脚本,我只从js文件中获取并显示数据作为列表,仅此而已。
我的App.vue
<template>
<w-app class="main-app">
<q-layout>
<q-header reveal className="sticky-top">
<Navigation/>
</q-header>
<MainContent/>
</q-layout>
</w-app>
</template>
<script>
import {defineAsyncComponent} from 'vue'
const MainContent = defineAsyncComponent(() =>
import('@/components/MainContent.vue')
)
const Navigation = defineAsyncComponent(() =>
import('@/components/NavigationComponent.vue')
)
export default {
components: {MainContent, Navigation}
}
</script>
MainContent.vue
<template>
<w-flex justify-center class="pa3">
<SideElements></SideElements>
<div class="grow fill-width text-center">
<section id="first">
<FirstSection></FirstSection>
</section>
<section>
<AboutMe id="about"></AboutMe>
</section>
<section>
<ExperienceSection id="experience"/>
</section>
<section>
<FeaturedProject id="projects">
</FeaturedProject>
</section>
</div>
</w-flex>
</template>
<script>
import {defineAsyncComponent} from 'vue'
const FirstSection = defineAsyncComponent(() =>
import('@/components/FirstSection.vue')
)
const AboutMe = defineAsyncComponent(() =>
import('@/components/AboutMe.vue')
)
const ExperienceSection = defineAsyncComponent(() =>
import('@/components/ExperienceSection.vue')
)
const SideElements = defineAsyncComponent(() =>
import('@/components/SideElements.vue')
)
const FeaturedProject = defineAsyncComponent(() =>
import('@/components/FeaturedProject.vue')
)
export default {
components: {
FeaturedProject,
ExperienceSection,
AboutMe,
FirstSection,
SideElements
}
}
</script
main.js
import { createApp } from 'vue'
import App from './App.vue'
//Quasar
import { Quasar } from 'quasar'
// Import icon libraries
import '@quasar/extras/material-icons/material-icons.css'
// Import Quasar css
import 'quasar/src/css/index.sass'
//WaveUI
import WaveUI from 'wave-ui'
import 'wave-ui/dist/wave-ui.css'
const app = createApp(App)
app.use(Quasar, {
plugins: {}, // import Quasar plugins and add here
})
app.use(WaveUI, { /* Some Wave UI options */ })
app.mount('#app')
以及如何从js文件中调用数据。
<script>
import {mdiFolderOutline, mdiGithub, mdiOpenInNew} from '@mdi/js';
import {projects} from "@/assets/projects.js";
export default {
name: "FeaturedProject",
data: () => ({
folder: mdiFolderOutline,
github: mdiGithub,
open: mdiOpenInNew,
projects: projects
})
}
</script>
3条答案
按热度按时间ua4mk5z41#
要优化Vue应用程序的初始加载策略,可以使用以下几种技术:
代码分割:将代码分割成更小的块可以更快地加载和更好地缓存。这可以使用webpack等工具来实现,它内置了对代码分割的支持。
延迟加载:只加载特定时刻需要的组件可以加快初始加载时间。Vue通过动态导入提供了对延迟加载的内置支持。
SSR(服务器端渲染):在服务器上预呈现页面可以显著缩短初始加载时间,因为服务器会将完全呈现的HTML发送回客户端,从而减少客户端所需的工作量。
缓存和压缩:启用缓存和资产压缩也可以加快初始加载时间。像service worker这样的工具可以帮助缓存,而gzip压缩可以减少通过网络发送的资产的大小。
ujv3wf0j2#
你可以做的性能优化(不仅仅是前端):
HTTP/3
。它在处理多个请求(如获取JS文件)时具有更好的性能gzip
/brotli
。您可以在服务器/CDN中完成,也可以使用webpack
(或任何其他捆绑包)并使用压缩插件配置production
构建。webpack
这样的打包器,并使用treeshaking只提取每个页面中需要的代码。jpg
和woff2
用于较小的尺寸。<meta>
标记中使用preconnect
和prefetch
。您还可以通过使用Chrome开发工具中的Lighthouse找到更多潜在的优化。
jdzmm42g3#
localhost的速度直接取决于你的电脑的能力,如果你有一台运行php服务器的旧电脑,vscode,....你的页面需要很长时间刷新可能是正常的。