第一章:Vue3入门——从历史到实战的全面认知

大家好,我是你们这门课的主讲。今天咱们聊聊Vue3的入门知识。说实话,我接触Vue已经好几年了,从Vue2一路用到Vue3,踩过不少坑,也积累了一些心得。这一章,我会带着大家从Vue的发展史讲起,再到Vue3的新特性、应用场景,最后手把手搭建开发环境。嗯,内容不少,但都是干货。

1.1 Vue.js发展史:从诞生到主流

Vue.js是尤雨溪在2014年发布的。那时候前端框架还是Angular和React的天下。Vue的出现,说白了就是提供了一个更轻量、更易上手的选择。我记得2016年我第一次用Vue时,就被它的简洁惊艳到了——一个HTML文件加一个script标签就能跑起来,太适合小项目了。

Vue2在2016年发布,带来了虚拟DOM和响应式系统,一下子成了主流。我那时候在公司做后台管理系统,Vue2配合Element UI,开发效率直接翻倍。但Vue2也有痛点,比如TypeScript支持不够好,逻辑复用靠mixins容易混乱。

2020年,Vue3正式发布。这次是重写,底层用Proxy替代了Object.defineProperty,性能提升明显。我升级第一个项目时,最直观的感受就是——打包体积小了,运行快了。你想想看,一个框架能保持向后兼容的同时,还做出这么大的突破,确实不容易。

核心时间线:

  • 2014年:Vue.js 1.0 发布,主打轻量级
  • 2016年:Vue 2.0 发布,引入虚拟DOM
  • 2020年:Vue 3.0 发布,Composition API 登场
  • 2023年:Vue 3.4 成为稳定推荐版本

1.2 Vue3新特性:到底新在哪?

Vue3的新特性,我挑几个最实用的讲。你不需要一次性全记住,后面课程会反复用到。

1.2.1 Composition API

这是Vue3最大的变化。以前Vue2用Options API,data、methods、computed分开写。小项目还行,但组件一复杂,逻辑分散在各处,维护起来很痛苦。Composition API允许你把相关逻辑聚在一起,用setup函数组织代码。

// Vue2 Options API
export default {
  data() { return { count: 0 } },
  methods: { increment() { this.count++ } }
}

// Vue3 Composition API
import { ref } from 'vue'
export default {
  setup() {
    const count = ref(0)
    const increment = () => count.value++
    return { count, increment }
  }
}

我个人习惯用Composition API写复杂组件。比如一个表单页面,验证逻辑、提交逻辑、数据加载逻辑,用setup函数可以清晰分组。我曾经在一个项目中,把一个500行的Options API组件重构为Composition API,代码量没少,但可读性提升了一个档次。

1.2.2 响应式系统升级

Vue2用Object.defineProperty,只能监听已有属性,新增属性需要Vue.set。Vue3用Proxy,可以监听整个对象,包括新增和删除。说白了,就是更智能了。我在项目中遇到过一个问题:Vue2里给对象动态添加属性,视图不更新,排查了半天才发现是响应式没跟上。Vue3直接解决了这个痛点。

1.2.3 其他亮点

  • Teleport:把组件渲染到DOM的任意位置,适合做弹窗、提示框
  • Suspense:处理异步组件加载,可以显示加载状态
  • Fragment:组件支持多个根节点,不用再包一层div
  • Tree-shaking:按需引入API,打包体积更小

避坑指南:我曾经在升级Vue3时,发现有些第三方库还没适配。建议你先用Vue3官方推荐的库,比如Element Plus、Vue Router 4、Pinia。等生态成熟了再迁移老项目。

1.3 Vue3应用场景:它能做什么?

Vue3的应用场景很广。我总结了几类最常见的:

场景 说明 我的经验
企业级后台系统 数据管理、权限控制、报表展示 这是Vue3的强项,配合Element Plus效率极高
移动端H5应用 配合Vant或NutUI,开发小程序或H5 Vue3的Tree-shaking让移动端包体积更小
中大型单页应用 电商、社交、内容管理 Composition API适合复杂状态管理
桌面端应用 配合Electron,开发跨平台桌面软件 我做过一个内部工具,Vue3+Electron很稳

你想想看,Vue3的灵活性和性能,基本覆盖了前端开发的大部分场景。特别是企业级后台,我们这门课就是围绕这个场景展开的。

1.4 开发环境搭建:Node.js、Vite、Vue CLI

环境搭建是第一步。我建议你用Vite,它是Vue3官方推荐的构建工具,速度比Webpack快很多。Vue CLI虽然也能用,但Vite是未来趋势。

1.4.1 安装Node.js

Node.js是运行环境,Vite和Vue CLI都依赖它。去官网下载LTS版本就行。安装完成后,打开终端验证:

node -v   # 查看Node版本,建议18以上
npm -v    # 查看npm版本

嗯,这里要注意:Node版本太老会导致Vite报错。我曾经在旧服务器上装Vite,结果Node 12不支持,升级到18才解决。

1.4.2 使用Vite创建Vue3项目

Vite创建项目很简单,一行命令搞定:

npm create vite@latest my-vue3-app -- --template vue

然后进入项目目录,安装依赖:

cd my-vue3-app
npm install
npm run dev

浏览器打开 http://localhost:5173,就能看到Vue3的欢迎页面了。Vite的热更新速度,用过就回不去了。我开发时改个代码,几乎瞬间刷新,不像Webpack要等好几秒。

1.4.3 使用Vue CLI(备选方案)

如果你习惯Vue CLI,也可以用它:

npm install -g @vue/cli
vue create my-vue3-app

选择Vue3预设即可。不过说实话,Vue CLI现在更新慢了,我建议新项目直接用Vite。

注意事项:Vite和Vue CLI的项目结构略有不同。Vite默认用ES Modules,Vue CLI用CommonJS。如果你要迁移老项目,注意调整导入方式。我曾经帮同事迁移一个Vue CLI项目到Vite,花了半天改配置。

1.4.4 安装Element Plus

我们这门课要用Element Plus,安装也很简单:

npm install element-plus --save

然后在main.js中引入:

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'

const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

这样就能在组件中使用Element Plus的组件了。比如:

<template>
  <el-button type="primary">我是Element Plus按钮</el-button>
</template>

我个人习惯按需引入,减少打包体积。但初学阶段,全量引入更方便,后面课程会讲按需引入的配置。

小结

这一章我们讲了Vue3的来龙去脉、新特性、应用场景,还搭建了开发环境。说白了,Vue3就是更现代、更高效、更灵活。下一章我们会深入Vue3的核心——响应式原理和Composition API实战。嗯,做好准备,干货还在后面。

本章重点回顾:

  • Vue3用Proxy替代Object.defineProperty,响应式更强大
  • Composition API让逻辑复用更优雅
  • Vite是推荐的构建工具,速度快
  • Element Plus是Vue3的UI组件库,适合企业级后台