Vue3-前端框架Vue基础入门

 

一、Vue 3核心特性

  1. 组合式API(Composition API)

    • 替代Vue 2的选项式API,逻辑复用更灵活
    • 核心函数:ref()reactive()computed()watch()
  2. 响应式系统升级

    • 基于Proxy实现,支持Map/Set等集合类型
    • 性能提升:静态树提升(Static Tree Hoisting)
  3. Teleport组件

    • 实现DOM节点跨层级渲染
    • 典型场景:全局弹窗、通知栏

二、基础语法示例

1. 组件模板
 
<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">+1</button>
  </div>
</template>

2. 脚本部分
 
<script setup>
import { ref } from 'vue'

const count = ref(0)

function increment() {
  count.value++
}
</script>

三、工程化配置

  1. 项目创建

    npm init vue@latest
    
  2. 目录结构

     
    /src
      /components   # 可复用组件
      /views        # 页面级组件
      App.vue       # 根组件
      main.js       # 应用入口
    

四、生命周期对比

Vue 2选项Vue 3组合式API
beforeCreatesetup()
createdsetup()
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated

五、实战示例:TodoList

TodoItem.vue

 


<script setup>
defineProps({
  todo: Object,
  index: Number
})
</script>

<template>
  <li>
    {{ todo.text }}
    <button @click="$emit('remove', index)">×</button>
  </li>
</template>

App.vue

 setup>
import { ref } from 'vue'
import TodoItem from './TodoItem.vue'

const todos = ref([])
const newTodo = ref('')

function addTodo() {
  todos.value.push({ text: newTodo.value })
  newTodo.value = ''
}
</script>

<template>
  <input v-model="newTodo" @keyup.enter="addTodo">
  <ul>
    <TodoItem 
      v-for="(todo, index) in todos"
      :key="index"
      :todo="todo"
      @remove="todos.splice($event, 1)"
    />
  </ul>
</template>

六、学习资源推荐

  1. 官方文档:vuejs.org(优先阅读中文V3文档)
  2. 调试工具:Vue Devtools 6.0+
  3. UI库:Element Plus(Vue 3适配版)

注:建议从Vue 3开始学习,无需先掌握Vue 2。重点理解响应式原理和组合式API设计思想。

如何配置Vue 3项目? 

以下是针对Vue 3项目配置的完整指南,涵盖‌环境搭建、项目初始化、核心配置、开发调试‌全流程,结合实际开发场景提供可落地的解决方案:


一、环境准备

1. 开发工具链
工具版本要求作用安装方式
Node.js≥16.0(推荐LTS)运行开发服务器和构建工具官网下载
npm/yarn/pnpm≥8.0/≥1.22/≥7.0依赖管理npm install -g pnpm(示例)
Git≥2.0版本控制官网下载
浏览器Chrome/Firefox调试开发版本安装开发者工具扩展(如Vue Devtools)
2. 验证环境
 
node -v  # 输出示例:v18.16.0
npm -v   # 输出示例:9.5.1


二、项目初始化(3种主流方式)

方式1:官方脚手架(推荐)
 
npm create vue@latest my-vue-app
# 或使用pnpm/yarn
pnpm create vue@latest my-vue-app

  • 交互式配置‌:支持选择TypeScript、Pinia、Router等特性
  • 生成目录结构‌:
     
    my-vue-app/
    ├── src/
    │   ├── assets/       # 静态资源
    │   ├── components/   # 通用组件
    │   ├── views/        # 页面组件
    │   ├── App.vue       # 根组件
    │   └── main.js       # 应用入口
    ├── public/           # 公共资源(不会被Webpack处理)
    ├── package.json      # 依赖配置
    └── vite.config.js    # Vite配置文件(或vue.config.js)
    

方式2:Vite快速初始化(轻量级)
 
npm create vite@latest my-vue-app --template vue

  • 优势‌:启动速度比Vue CLI快10倍以上(冷启动<1s)
  • 适用场景‌:中小型项目或学习用途
方式3:手动搭建(进阶)
  1. 创建项目目录并初始化npm
     
    mkdir my-vue-app && cd my-vue-app
    npm init -y
    

  2. 安装核心依赖
     
    npm install vue@next @vitejs/plugin-vue
    

  3. 配置vite.config.js
     
    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'
    
    export default defineConfig({
      plugins: [vue()]
    })
    


三、核心配置详解

1. ‌开发服务器配置‌(vite.config.js
 
export default defineConfig({
  server: {
    port: 3000,          // 开发服务器端口
    open: true,          // 自动打开浏览器
    proxy: {             // 代理配置
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true
      }
    }
  }
})

置 '/api': { target: 'http://localhost:8080', changeOrigin: true } } } })

2. ‌环境变量管理
  • 文件规范‌:
     
    .env               # 所有环境通用
    .env.development   # 开发环境
    .env.production    # 生产环境
    

  • 示例内容‌:
     
    VITE_APP_TITLE=MyVueApp
    VITE_API_BASE_URL=/api
    

  • 代码中使用‌:
     
    console.log(import.meta.env.VITE_APP_TITLE) // 输出:MyVueApp
    

3. ‌CSS预处理器配置
 
npm install sass -D  # 安装Sass支持

  • Vite配置‌(无需额外配置,直接使用.scss文件)
  • 组件中使用‌:
     
    <style lang="scss" scoped>
    $primary-color: #42b983;
    .title {
      color: $primary-color;
    }
    </style>
    

4. ‌路由配置(Vue Router)
 
npm install vue-router@4

  • 路由文件示例‌(src/router/index.js):
     
    import { createRouter, createWebHistory } from 'vue-router'
    
    const routes = [
      { path: '/', component: () => import('../views/Home.vue') },
      { path: '/about', component: () => import('../views/About.vue') }
    ]
    
    const router = createRouter({
      history: createWebHistory(),
      routes
    })
    
    export default router
    

  • 主入口挂载‌:
     
    import { createApp } from 'vue'
    import App from './App.vue'
    import router from './router'
    
    const app = createApp(App)
    app.use(router)
    app.mount('#app')
    

5. ‌状态管理(Pinia)
 
npm install pinia

  • Store定义‌(src/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>
    
    <template>
      <button @click="counter.increment">{{ counter.count }}</button>
    </template>
    


四、开发调试技巧

  1. Vue Devtools

    • 安装浏览器扩展(Chrome/Firefox)
    • 关键功能:
      • 组件树结构查看
      • 状态快照对比
      • 事件总线监控
  2. Vite热更新(HMR)

    • 修改.vue文件后自动刷新
    • 支持CSS/JSX/TSX的热更新
  3. 错误捕获

    • 开发环境自动显示控制台警告
    • 生产环境使用@vitejs/plugin-legacy兼容旧浏览器

五、生产环境构建

 
npm run build

  • 输出文件‌:dist/目录
  • 优化配置‌(vite.config.js):
     
export default defineConfig({
  build: {
    outDir: 'dist',
    sourcemap: process.env.NODE_ENV === 'production' ? false : 'inline',
    chunkSizeWarningLimit: 1500, // 增大警告阈值
    rollupOptions: {
      output: {
        manualChunks: {
          vendor: ['vue', 'vue-router', 'pinia'] // 代码分割
        }
      }
    }
  }
})

六、常见问题解决方案

问题描述解决方案
浏览器缓存旧版本开发时禁用缓存:DevTools → Network → Disable cache
组件未响应式更新确保使用ref()/reactive()包装数据
环境变量未生效变量名必须以VITE_开头
构建后资源404确保base配置正确(如部署到子目录需设为./

七、推荐项目结构(中大型项目)

 
src/
├── api/                  # API接口管理
├── assets/               # 静态资源
├── components/           # 通用组件
│   ├── base/             # 基础组件(如Button、Input)
│   └── business/         # 业务组件(如OrderCard)
├── composables/          # 组合式函数
├── constants/            # 常量定义
├── directives/           # 自定义指令
├── hooks/                # 自定义Hook
├── layouts/              # 布局组件
├── router/               # 路由配置
├── stores/               # Pinia Store
├── styles/               # 全局样式
├── utils/                # 工具函数
├── views/                # 页面组件
├── App.vue               # 根组件
└── main.js               # 应用入口


八、进阶优化建议

  1. 性能优化

    • 使用<Suspense>处理异步组件
    • 图片懒加载:v-lazy指令
    • 代码分割:动态import()
  2. 类型安全

    • 启用TypeScript严格模式(strict: true
    • 使用vue-tsc进行类型检查
  3. 测试配置

    • 单元测试:Vitest + @vue/test-utils
    • E2E测试:Cypress/Playwright

通过以上配置,您可快速搭建一个符合企业级标准的Vue 3项目。建议优先使用官方脚手架初始化项目,并根据实际需求逐步扩展功能。对于新项目,推荐直接采用‌Vue 3 + Vite + Pinia + TypeScript‌的技术栈组合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值