您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何搭建Vue 3.0项目
## 前言
Vue.js 作为当前最流行的前端框架之一,其3.0版本带来了诸多性能优化和新特性。本文将详细介绍从零开始搭建Vue 3.0项目的完整流程,涵盖环境准备、项目初始化、目录结构解析、核心配置以及进阶优化等内容,帮助开发者快速上手Vue 3开发。
---
## 一、环境准备
### 1.1 安装Node.js
Vue 3需要Node.js 12.x或更高版本:
```bash
# 检查Node版本
node -v
# 推荐使用nvm管理Node版本
nvm install 16
nvm use 16
推荐使用npm或yarn:
# 安装yarn
npm install -g yarn
# 全局安装Vue CLI
npm install -g @vue/cli
# 创建项目
vue create vue3-demo
# 选择Vue 3预设
? Please pick a preset:
Default ([Vue 2] babel, eslint)
❯ Default (Vue 3) ([Vue 3] babel, eslint)
Manually select features
更快的现代构建工具:
npm create vite@latest vue3-vite-demo --template vue
cd vue3-vite-demo
npm install
npm run dev
vue3-project/
├── public/ # 静态资源
├── src/
│ ├── assets/ # 静态资源
│ ├── components/ # 组件
│ ├── composables/ # 组合式函数(Vue 3推荐)
│ ├── router/ # 路由配置
│ ├── stores/ # Pinia状态管理
│ ├── views/ # 页面级组件
│ ├── App.vue # 根组件
│ └── main.js # 应用入口
├── .env # 环境变量
├── vite.config.js # Vite配置
└── package.json
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
// 注册全局组件
app.component('MyComponent', MyComponent)
app.mount('#app')
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
server: {
port: 3000,
open: true
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src')
}
}
})
# .env.development
VITE_API_BASE=http://dev.example.com
// 使用环境变量
console.log(import.meta.env.VITE_API_BASE)
<script setup>
import { ref, computed, onMounted } from 'vue'
const count = ref(0)
const double = computed(() => count.value * 2)
function increment() {
count.value++
}
onMounted(() => {
console.log('组件挂载')
})
</script>
<teleport to="#modals">
<div class="modal">...</div>
</teleport>
<template>
<header>...</header>
<main>...</main>
<footer>...</footer>
</template>
npm install vue-router@4
// router/index.js
import { createRouter, createWebHistory } from 'vue-router'
const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About }
]
const router = createRouter({
history: createWebHistory(),
routes
})
router.beforeEach((to, from) => {
if (to.meta.requiresAuth) {
return '/login'
}
})
npm install pinia
// stores/counter.js
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', {
state: () => ({ count: 0 }),
actions: {
increment() {
this.count++
}
}
})
<script setup>
import { useCounterStore } from '@/stores/counter'
const counter = useCounterStore()
</script>
// 动态导入组件
const Home = () => import('./views/Home.vue')
以Element Plus为例:
// vite.config.js
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
plugins: [
Components({
resolvers: [ElementPlusResolver()]
})
]
})
npm install rollup-plugin-visualizer
// vite.config.js
import { visualizer } from 'rollup-plugin-visualizer'
export default defineConfig({
plugins: [visualizer()]
})
npm run build
FROM nginx:alpine
COPY dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
浏览器兼容性问题
配置@vitejs/plugin-legacy支持传统浏览器
SFC样式问题
使用<style scoped>
或CSS Modules
HMR不生效
检查Vite服务器配置和网络代理
通过本文的指导,您应该已经掌握了Vue 3项目的完整搭建流程。Vue 3带来的Composition API、性能优化等特性,能够帮助开发者构建更高效的前端应用。建议继续探索: - Vue 3响应式原理 - 服务端渲染(SSR) - 微前端架构集成
项目示例代码:https://github.com/example/vue3-starter
官方文档:https://vuejs.org/ “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。