3.1 KiB
3.1 KiB
Vue 学习指南 - 项目1: 待办事项应用
🎯 学习目标
通过这个待办事项应用,您将学习到Vue的核心概念:
- 响应式数据 (Reactivity)
- 数据绑定 (Data Binding)
- 事件处理 (Event Handling)
- 条件渲染 (Conditional Rendering)
- 列表渲染 (List Rendering)
- 计算属性 (Computed Properties)
📚 核心概念详解
1. 响应式数据 (ref)
const newTodo = ref('')
const todos = ref([...])
ref()创建响应式数据- 当数据改变时,UI会自动更新
- 在模板中直接使用,在script中需要
.value
2. 数据绑定 (v-model)
<input v-model="newTodo" />
- 双向数据绑定
- 输入框的值与数据同步
- 用户输入会自动更新数据
3. 事件处理 (@click, @keyup)
<button @click="addTodo">添加</button>
<input @keyup.enter="addTodo" />
@click处理点击事件@keyup.enter处理回车键- 事件修饰符简化常见操作
4. 条件渲染 (v-show, v-if)
<main v-show="todos.length">
<div v-show="!todos.length">
v-show控制元素显示/隐藏v-if条件性渲染元素- 根据数据状态动态显示内容
5. 列表渲染 (v-for)
<li v-for="todo in filteredTodos" :key="todo.id">
v-for循环渲染列表:key提供唯一标识符- 提高渲染性能
6. 计算属性 (computed)
const filteredTodos = computed(() => {
// 根据filter状态过滤todos
})
- 基于其他数据计算得出
- 自动缓存,依赖不变时不重新计算
- 响应式更新
🔧 功能实现分析
添加待办事项
- 用户在输入框输入内容
- 按回车或点击添加按钮
- 验证输入不为空
- 创建新的todo对象
- 添加到todos数组
- 清空输入框
切换完成状态
- 点击复选框
- 触发toggleTodo方法
- 找到对应的todo
- 切换completed状态
- UI自动更新样式
过滤显示
- 点击过滤按钮
- 更新filter状态
- 计算属性重新计算
- 列表自动更新显示
🎨 样式特点
- 使用scoped样式避免污染
- 响应式设计
- 悬停效果和过渡动画
- 清晰的视觉层次
🚀 实践练习
基础练习
- 修改默认的待办事项
- 改变应用的颜色主题
- 添加更多的过滤选项
进阶练习
- 添加编辑功能
- 实现拖拽排序
- 添加优先级标记
- 实现本地存储
📖 Vue语法总结
| 语法 | 用途 | 示例 |
|---|---|---|
{{ }} |
文本插值 | {{ todo.text }} |
v-model |
双向绑定 | v-model="newTodo" |
@event |
事件监听 | @click="addTodo" |
v-for |
列表渲染 | v-for="todo in todos" |
v-show |
条件显示 | v-show="todos.length" |
:class |
动态类名 | :class="{ active: filter === 'all' }" |
ref() |
响应式数据 | const count = ref(0) |
computed() |
计算属性 | const total = computed(() => ...) |
🎯 下一步学习
完成这个项目后,您已经掌握了Vue的基础概念。接下来我们将学习:
- 组件化开发
- 组件通信 (props, emit)
- 插槽 (slots)
- 生命周期钩子
准备好继续学习项目2了吗?