Vue.js作为现代前端开发的首选框架之一,其3.0版本带来的性能提升和开发体验优化值得每个开发者关注。
这篇教程将系统讲解Vue 3的核心特性、安装方法以及实际开发中的最佳实践。

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的渐进式 JavaScript 框架。
Vue 3 的主要升级亮点:

现代前端开发早已告别了直接通过标签引入的时代,我们通常会使用官方推荐的构建工具Vite来初始化 Vue 项目。
确保你的计算机上已安装了 Node.js(建议版本 18.0 或更高)。 打开终端,验证安装:
node -v
npm -v
在终端中运行以下命令,使用 create-vue 脚手架初始化项目:
npm create vue@latest
运行后,命令行会进入交互式的项目配置向导。你可以根据实际需求进行选择:
进入项目目录,安装依赖并启动本地开发服务器:
cd my-vue-app
npm install
npm run dev
此时,终端会输出一个本地访问地址(通常是 Vue 项目的默认启动页了!Vite 的冷启动速度极快,且支持模块热替换 (HMR),修改代码后浏览器会瞬间同步更新。
在 Vue 3 中,我们强烈推荐使用语法糖。它极大简化了代码结构,无需手动return变量即可在模板中使用。
下面我们将通过一个完整的计数器/任务列表组件,串起所有的核心知识点。
ref 与reactive在 Vue 中,普通变量改变时页面不会更新。我们需要使用ref或reactive将其包装成响应式数据。
ref:主要用于处理基本数据类型(如 String, Number, Boolean)。在中需要通过.value访问,而在中可以直接使用(模板会自动解包)。reactive:专门用于处理对象和数组。它本身就是一个 Proxy 对象,不需要写.value。<template>
<div>
<p>当前计数:{{ count }}p>
<button @click="increment">点击加一button>
<p>用户信息:{{ user.name }} - {{ user.role }}p>
div>
template>
Vue 提供了一套以v-开头的指令,用于在 DOM 上应用特殊的响应式行为。
v-bind(简写为:) :动态绑定 HTML 属性。v-model:在表单元素上创建双向数据绑定。v-if/v-else:条件渲染,根据真假值决定元素是否渲染到 DOM 中。v-for:列表渲染,用于遍历数组或对象。<template>
<div class="todo-app">
<input v-model="newTodo" placeholder="输入新任务" @keyup.enter="addTodo" />
<button @click="addTodo">添加button> <ul>
<li v-for="todo in todos" :key="todo.id">
<span :class="{ 'is-done': todo.done }">{{ todo.text }}span>
<input type="checkbox" v-model="todo.done" />
li>
ul>
<p v-if="todos.length === 0">太棒了,所有任务都完成了!p>
div>
template><style scoped>
.is-done {
text-decoration: line-through;
color: #888;
}
style>
当你需要根据现有的响应式数据推导出一个新值,且希望这个推导过程具备缓存机制时,应该使用computed。
<template>
<p>还有 {{ activeTodosCount }} 项任务未完成。p>
template>
有时我们需要在状态变化时执行"副作用"操作,比如将数据保存到 LocalStorage 或者向后端发送 API 请求。
在实际开发中,页面往往由多个组件嵌套而成。父组件通过 Props 向下传递数据,子组件通过 Emits 向上触发事件。
<template>
<div class="child">
<h4>{{ title }}h4>
<button @click="handleClick">通知父组件button>
div>
template>
<template>
<div class="parent">
<h3>父组件状态:{{ message }}h3>
<Child @update="handleUpdate" title="我是一个子组件"/>
div>
template>

通过本文的详细讲解,相信你已经掌握了Vue 3的核心概念和使用方法。从响应式系统到组件通信,这套框架为现代Web开发提供了优雅而高效的解决方案。