为什么选择 Vue3 + Vite?
在为武汉企业开发官网时,我们选择了 Vue3 + Vite 作为主力技术栈,原因如下:
- 开发效率高:Vite 的 HMR(热更新)速度极快,大型项目也能秒级刷新
- 打包体积小:基于 Rollup 的生产构建,Tree-shaking 更彻底
- 生态成熟:Vue3 Composition API + TypeScript 开发体验优秀
- SEO 友好:配合 SSR 或 SSG 方案,完美解决 SPA 的 SEO 问题
- 适合中小项目:企业官网的复杂度刚好在这个技术栈的甜蜜区间
项目架构设计
目录结构
/src
├── /assets # 静态资源(图片、字体)
├── /components # 公共组件
│ ├── AppHeader.vue # 头部导航
│ ├── AppFooter.vue # 底部信息
│ ├── ContactForm.vue # 联系表单
│ └── ImageCarousel.vue # 图片轮播
├── /views # 页面组件
│ ├── HomeView.vue # 首页
│ ├── AboutView.vue # 关于我们
│ ├── ProductView.vue # 产品/服务
│ └── ContactView.vue # 联系我们
├── /router # 路由配置
├── /stores # Pinia 状态管理
├── /utils # 工具函数
├── /styles # 全局样式
├── App.vue
└── main.ts
关键依赖
{
"vue": "^3.4",r> "vue-router": "^4.3",r> "pinia": "^2.1",r> "vite": "^5.0",r> "@vitejs/plugin-vue": "^5.0",
"unplugin-auto-import": "^0.17",
"unplugin-vue-components": "^0.26",
"axios": "^1.6",
"@unocss/reset": "^0.58",
"unocss": "^0.58"
}性能优化技巧
1. 路由懒加载
每个页面单独打包,访问时才加载:
// router/index.ts
const routes = [
{ path: '/', component: () => import('@/views/HomeView.vue') },
{ path: '/about', component: () => import('@/views/AboutView.vue') },
{ path: '/products', component: () => import('@/views/ProductView.vue') },
{ path: '/contact', component: () => import('@/views/ContactView.vue') }
]
2. 图片优化
- 使用 WebP 格式(体积比 JPG 小 30-50%)
- 根据视口尺寸加载不同分辨率的图片(srcset)
- 图片懒加载(Intersection Observer API)
- 关键图片预加载(preload)
3. CSS 优化
- 使用 UnoCSS(原子化 CSS)替代传统 CSS 框架
- 生产构建时 PurgeCSS 自动移除未使用的样式
- CSS 代码分割(按路由拆分)
4. 第三方脚本优化
- 非关键脚本延迟加载(defer/async)
- 统计代码异步加载
- 字体文件子集化(仅包含使用到的字符)
5. Vite 构建优化
// vite.config.ts
export default defineConfig({
build: {
rollupOptions: {
output: {
manualChunks: {
vendor: ['vue', 'vue-router', 'pinia']
}
}
},
chunkSizeWarningLimit: 500
},
cssCodeSplit: true,
minify: 'terser',
terserOptions: {
compress: { drop_console: true }
}
})
SEO 优化方案
企业官网必须做好 SEO。我们采用 vite-plugin-ssr 实现服务端渲染:
- 每个页面组件定义 meta 信息(title、description、keywords)
- 服务端渲染时注入到 HTML head 中
- 配合 sitemap.xml 和 robots.txt
- 结构化数据标记(Schema.org JSON-LD)
// views/HomeView.vue
<script setup lang="ts">
definePageMeta({
title: '武汉XX公司 - 专业XX服务15年',
description: '武汉XX公司专注XX领域,服务光谷、江汉路、沌口等区域...',
keywords: ['武汉XX', 'XX服务', '光谷XX'],
ogImage: '/og-home.jpg'
})
</script>
武汉本地化适配
为武汉企业开发官网时的本地化考虑:
- 地图集成:嵌入百度地图标注公司位置(光谷/江汉路/沌口等)
- 联系方式:显示武汉本地座机号(027开头)和地址
- 备案信息:底部悬挂鄂ICP备号
- 友链交换:与武汉本地商会、协会网站互链
- 内容本地化:融入武汉地标和企业案例
部署方案
推荐部署方案:
- 构建:npm run build 生成静态文件
- CDN:上传至阿里云 OSS 或腾讯云 COS
- CDN 加速:开启阿里云 CDN 或腾讯云 CDN
- 域名 + HTTPS:绑定自定义域名,开启 SSL 证书
- CI/CD:使用 GitHub Actions 或 GitLab CI 自动化部署
整套方案的月成本:50-100元(含域名、SSL、OSS存储、CDN流量)。
性能数据
按照上述方案开发的武汉企业官网,实测数据:
- Lighthouse Performance Score:93-97 分
- First Contentful Paint:0.8-1.5 秒
- Largest Contentful Paint:1.2-2.0 秒
- Total Bundle Size (gzipped):80-150 KB
- 百度收录时间:1-3 天