以下是以资深软件开发工程师的视角,对“Vue3 教程”的专业回答。我将提供一个全面的 Vue3 入门教程,涵盖基础概念、安装、核心功能和实践示例,适合初学者和有一定经验的开发者。教程结合 HTML5,包含目录、小标题、表格、代码示例和内部链接,确保内容清晰、技术准确且易于理解。基于截至 2025 年 3 月 17 日的最新信息,以 Vue 3.4.x(最新稳定版)和 Vite 5.x 为基准。
Vue3 教程
目录
1. 引言
Vue3 是 Vue.js 的最新版本,以其高性能、简洁 API 和现代开发体验受到广泛欢迎。本教程将从零开始,带您掌握 Vue3 的基础知识,并通过一个 Todo List 示例巩固学习成果。
2. Vue3 概述
- 定义:Vue3 是一个渐进式 JavaScript 框架,用于构建用户界面。
- 特点:
- 响应式:数据变化自动更新视图。
- 组件化:UI 由可复用组件构成。
- 高效:基于 Proxy 的响应式系统和优化的虚拟 DOM。
- 新特性:组合式 API、Teleport、Fragments 等。
3. 安装与环境准备
3.1 环境要求
- Node.js:v20.x (LTS),下载自 nodejs.org。
- 浏览器:支持 ES6 的现代浏览器。
3.2 安装方法
- 推荐方式:使用 Vite
npm create vite@latest my-vue-app -- --template vue
cd my-vue-app
npm install
npm run dev
- CDN 方式(快速测试)
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
4. Vue3 核心概念
4.1 创建应用
- 语法:
createApp()
创建实例并挂载。 - 示例:
import { createApp } from 'vue';
const app = createApp({
data() {
return { message: 'Hello Vue3' };
}
});
app.mount('#app');
4.2 数据绑定
- 插值:
{{ 表达式 }}
- v-bind:动态绑定属性,简写为
:属性
- 示例:
<template>
<p>{{ message }}</p>
<img :src="imageUrl" />
</template>
<script>
export default {
data() {
return {
message: 'Vue3 数据绑定',
imageUrl: 'https://example.com/image.jpg'
};
}
};
</script>
4.3 指令
- 作用:以
v-
开头的特殊属性,实现动态逻辑。 - 常见指令:
指令 作用 示例v-if
条件渲染<div v-if="show">显示</div>
v-for
列表渲染<li v-for="item in items">{{ item }}</li>
v-model
双向绑定<input v-model="text" />
示例:<div v-if="isActive">激活</div>
4.4 事件处理- 语法:
v-on:事件="方法"
,简写为@事件="方法"
- 示例:
<template> <button @click="increment">计数: {{ count }}</button> </template> <script> export default { data() { return { count: 0 }; }, methods: { increment() { this.count++; } } }; </script>
4.5 组件- 定义:可复用的 UI 单元。
- 示例:
<!-- Child.vue --> <template> <p>{{ msg }}</p> </template> <script> export default { props: ['msg'] }; </script> <!-- App.vue --> <template> <child msg="Hello from parent" /> </template> <script> import Child from './Child.vue'; export default { components: { Child } }; </script>
5. 实践示例:Todo List 以下是一个简单的 Todo List 项目:- 创建项目:
npm create vite@latest vue-todo -- --template vue cd vue-todo npm install
- 修改
src/App.vue
:
<template> <div> <h1>Vue3 Todo List</h1> <input v-model="newTodo" @keyup.enter="addTodo" placeholder="添加任务" /> <ul> <li v-for="(todo, index) in todos" :key="index"> <span :class="{ done: todo.done }" @click="toggleDone(index)"> {{ todo.text }} </span> <button @click="removeTodo(index)">删除</button> </li> </ul> </div> </template> <script setup> import { ref } from 'vue'; const newTodo = ref(''); const todos = ref([]); const addTodo = () => { if (newTodo.value.trim()) { todos.value.push({ text: newTodo.value, done: false }); newTodo.value = ''; } }; const toggleDone = (index) => { todos.value[index].done = !todos.value[index].done; }; const removeTodo = (index) => { todos.value.splice(index, 1); }; </script> <style scoped> .done { text-decoration: line-through; color: #888; } ul { list-style: none; padding: 0; } li { display: flex; justify-content: space-between; margin: 5px 0; } input { margin-bottom: 10px; padding: 5px; } </style>
- 运行:
npm run dev
- 效果:访问
http://localhost:5173
,输入任务并管理清单。
new Vue()
createApp()
性能 较慢 更快,优化渲染- 关键变化:Vue3 引入组合式 API 和更高效的响应式系统。
- 模块化:将功能拆分为组件。
- 响应式:优先使用
ref
和reactive
。 - 调试:安装 Vue Devtools 浏览器扩展。
- 文档:参考官方文档(vuejs.org)。
- 规范:使用 ESLint 和 Prettier 保持代码一致性。
- 结构:包含目录、带锚点的小标题、表格和代码示例,逻辑清晰。
- 实用性:从基础到实践,覆盖 Vue3 入门全貌。
- 内部链接:通过
<a href="#ID">
跳转,如 Vue3 核心概念。 - 出站链接:嵌入正文,指向权威资源。
- 语法:
发表回复